使用PHP上传文章,文章发布和文件上传

本文介绍了如何在PHP Laravel框架中使用ArtCate和Article模型来管理前端页面的分类,包括数据验证和后端控制器中文章的保存过程。详细探讨了模型定义、字段保护、时间戳处理和验证规则的应用。
摘要由CSDN通过智能技术生成

前端页面insert.html

标题

分类

{volist name='cateList' id='cate'}

{$cate.name}

{/volist}

内容

标题图片

发布

后台:

模型     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('请求类型错误!');

}

}

数据表结构

030fe108ca15c2737f1ad9061ee4c7c3.png

WEEDCMS是由野草独立基于PHP+MYSQL开发的内容管理系统。面向企业、个人、小门户等中小规模网站使用而开发的。采用国际上比较流行Smarty引擎和敏捷的JQuery JS框架。本程序是在PHPNOW集成开发环境中完成的,测试的时候建议使用该环境。另外如果是其他环境建议使用PHP(5.2.x)+Apache(2.x)+MYSQL(5.x)组合。声明:如果您的环境是PHP4的话建议升级到最新版本! 野草网站管理系统(WEEDCMS) 5.6 Build 20111203 更新内容: 1.[修复] 验证码失效问题 2.[修复] 详细页面图片缩小BUG 3.[修复] 在chrome下CSS显示问题 4.[修复] 搜索页面不支持rewrite问题 5.[优化] XH编辑器更新到最新版本 6.[修复] 缓存失效问题 7.[修复] 更换了后台登陆样式 【功能介绍】 01.基于PHP+MYSQL架构。 02.创新型内容管理模式,建立频道后可定义内容模型,均在后台可以控制,非常方便。 03.模板引擎采用了成熟稳定的Smarty引擎,很轻松就可以做出模板界面来。 04.前台和后台均采用了DIV+CSS,速度比传统型略快。 05.JS采用了国际上比较流行的Jquery框架,还有基于Jquery的XHEditor可视化编辑器。 06.支持基于Apache和IIS的路径优化功能,让您的网站面向搜索引擎而优化。 07.单页功能:制作类似关于我们和公司介绍只要添加数据就可以实现,并且可控制访问权限。 08.后台支持权限分配,减轻管理员工作负担。 09.可自定义菜单导航,可支持2J菜单。 10.支持友情连接 11.投票功能:可以控制在哪个页面显示,并且可以实现时间段显示投票,控制了一个IP只能投一次。 12.广告功能:支持HTML自定义,并且可投送到想要显示的页面。 13.支持内容无限分类,可详细定义自己的内容。 14.制作了会员组接口,方便控制资源分配等。 15.实时监控网站在线人员动向。 16.后台管理操作可一一记录到日志中。 17.支持多语言包切换。 18.支持留言本模块 19.支持IP和IP段过滤功能 20.支持非法字符过滤功能 21.支持内容分页 演示网址:www.gg265.net
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值