登录  /  注册
博主信息
博文 95
粉丝 0
评论 11
访问量 243198
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
文章发布和文件上传
龍__遇见彩虹的博客
原创
1537人浏览过

前端页面insert.html

<form action="{:url('index/save')}" class="form-horizontal" method="post" id="login" enctype="multipart/form-data" >
			<input type="hidden" name="user_id" value="{$Think.session.user_id}" />
  			<div class="form-group">
    			<label for="title" class="col-sm-2 control-label">标题</label>
    			<div class="col-sm-6">
      				<input type="text" class="form-control" name="title" id="title" placeholder="title">
    			</div>
  			</div>
  			<div class="form-group">
    			<label class="col-sm-2 control-label">分类</label>
    			<div class="col-sm-6">
    			  <select name="cate_id" id="" class="form-control">
    				{volist name='cateList' id='cate'}
    				  <option value="{$cate.id}">{$cate.name}</option>
    				{/volist}
    			  </select>
    			</div>
  			</div>
  			<div class="form-group">
    			<label class="col-sm-2 control-label">内容</label>
    			<div class="col-sm-6">
      				<textarea name="content" class="form-control" style="min-height: 180px;"></textarea>
    			</div>
  			</div>
  			<div class="form-group">
    			<label for="title_img" class="col-sm-2 control-label">标题图片</label>
    			<div class="col-sm-6">
      				<input type="file" name="title_img" id="title_img">
    			</div>
  			</div>

  			<div class="form-group">
    			<div class="col-sm-offset-2 col-sm-6">
      				<button type="submit" class="btn btn-primary" id="submit">发布</button>
    			</div>
  			</div>
		</form>



后台:

模型     ArtCate.php

<?php
namespace app\common\model;

use think\Model;

/**
 * zh_user表的模型
 */
class ArtCate extends Model
{
	protected $pk = 'id';//默认主键
	protected $table = 'zh_article_cate';//默认数据表
	
//	第一种方式是全局开启,在数据库配置文件中进行设置:
//	'auto_timestamp' => true,
//	protected $autoWriteTimestamp = true;//我已经在数据库配置文件中进行设置,这里不需要设置,不用设置为false即可

	// 定义时间戳字段名
	protected $createTime = 'create_time';
	protected $updateTime = 'update_time';
	//定义时间格式
	protected $dateFormat = 'Y年m月d日';
	
	//开启自动模式
	protected $auto = [];//无论是新增或更新都要设置的字段
	//仅新增的有效(参数是字段名)
	protected $insert = ['create_time', 'status'=>1];
	//仅更新的设置有效(参数是字段名)
	protected $update = ['update_time'];
}


模型      Article.php

<?php
namespace app\common\model;

use think\Model;

/**
 * zh_user表的模型
 */
class Article extends Model
{
	protected $pk = 'id';//默认主键
	protected $table = 'zh_article';//默认数据表
	
//	第一种方式是全局开启,在数据库配置文件中进行设置:
//	'auto_timestamp' => true,
//	protected $autoWriteTimestamp = true;//我已经在数据库配置文件中进行设置,这里不需要设置,不用设置为false即可

	// 定义时间戳字段名
	protected $createTime = 'create_time';
	protected $updateTime = 'update_time';
	//定义时间格式
	protected $dateFormat = 'Y年m月d日';
	
	//开启自动模式
	protected $auto = [];//无论是新增或更新都要设置的字段
	//仅新增的有效(参数是字段名)
	protected $insert = ['create_time', 'status'=>1, 'is_hot'=>0, 'is_top'=>0];
	//仅更新的设置有效(参数是字段名)
	protected $update = ['update_time'];
}


文章验证器     Article.php

<?php
namespace app\common\validate;

use think\Validate;//调用框架的验证类

class Article extends Validate
{
	protected $rule = [
		'title|标题' => 'require|length:2,50|chsAlphaNum',
//		'title_img|图片' => 'require',
		'content|文章内容' => 'require',
		'user_id' => 'require',
		'cate_id' => 'require',
	];
}


控制器(重要)保存文章        index.php

一开始记得引入TP框架类问价和自定义类问价

use app\common\model\ArtCate;

use app\common\model\Article;

use think\facade\Request;

    /**
     * 保存文章
     */
    public function save()
    {
    	//判断提交类型是否为post
    	if(Request::isPost()){
    		//获取用户提交的文章信息
    		$data = Request::post();
//  		halt($data);//测试,打印输出
			$rule = 'app\common\validate\Article';
			$res = $this->validate($data, $rule);
			if($res !== true){
				//验证失败
				$this->error($res);
			}else{
				//判断是否有选择上传文件,选择了文件才进行验证等等步骤
				if(!empty($_FILES['title_img']['tmp_name'])){
//					echo '已选择文件';
					
					//验证成功,获取上传的信息
					$file = Request::file('title_img');				
					//文件信息验证成功后,再上传服务器指定目录,以public为起始目录
					$info = $file->validate([
						'size'=>1000000,
						'ext'=>'jpeg,jpg,png,gif',
					])->move('uploads/');				
					//判断是否上传成功
					if($info){
						$data['title_img'] = $info->getSaveName();
					}else{
						$this->error($file->getError());
					}					
				}
				
				//将数据插入数据表中
				if(Article::create($data)){
					$this->success('文章发布成功!', 'index/index');
				}else{
					$this->error('文章发布失败!');
				}				
			}			
    	}else{
    		$this->error('请求类型错误!');
    	}
    }



数据表结构

TIM截图20180809174938.png





本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学