# Html 页面
~~~
{extend name='/father/index' /}
{block name='nave'}
<nav role="navigation" class="navbar navbar-default">
<div class="container">
<div class="row">
<div class="col-sm-12" >
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example-navbar-collapse">
<span class="sr-only">切换导航</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse" id="example-navbar-collapse">
<ul class="_menu" >
<li ><a href="index.html">首页</a></li>
<li><a href="">新闻</a></li>
<li><a href="">军事</a></li>
<li><a href="">娱乐</a></li>
{if session('uid')}
<li >
<div class="dropdown">
<button class="btn btn-success dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{$Think.session.usename}
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="">发布文章</a>
<a class="dropdown-item" href="/logout">退出登录</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
</li>
{else/}
<li class="_active"><a href="login">登录</a></li>
<li ><a href="register">注册</a></li>
{/if}
</ul>
</div>
</div>
</div>
</div>
</nav>
{/block}
{block name='left'}
<div style="height:600px;width: 1200px">
<main class="col-md-1"></main>
<main class="col-md-10 justify-content-center">
<form method="post" id="register" class="form-horizontal" style="padding-bottom: 0px" >
<div class="card" style="padding-bottom: 100px">
<div class="card-header">
文章添加
</div>
<div class="card-block">
<div class="form-group mt-4 ">
<label class="col-sm-3 control-label">文章标题</label>
<div class="col-sm-7">
<input type="text" name="title" class="form-control" required>
</div>
</div>
</div>
<div class="card-block">
<div class="form-group mt-4 ">
<label class="col-sm-3 control-label">文章栏目</label>
<div class="col-sm-7">
<div class="input-group ">
<select class="custom-select" id="inputGroupSelect01" name="cate_id">
<option selected=""><font style="vertical-align: inherit;"><font style="vertical-align: inherit;">选择...</font></font></option>
{foreach $categorys as $v}
<option value="{$v['id']}"><font style="vertical-align: inherit;">
<font style="vertical-align: inherit;">{$v['name']}</font></font></option>
{/foreach}
</select>
</div>
</div>
</div>
</div>
<input type="text" hidden name="{$Think.session.uid}">
<div class="card-block">
<div class="form-group mt-4 ">
<label class="col-sm-3 control-label">文章图片</label>
<div class="col-sm-7">
<div class="input-group ">
<div class="custom-file">
<input type="file" name="title_img" id="title_img" />
</div>
</div>
</div>
</div>
</div>
<div class="card-block">
<div class="form-group mt-4 ">
<label class="col-sm-3 control-label">文章内容</label>
<div class="col-sm-7">
<div id="editormd">
<textarea style="width: 600px;height: 200px;" name="content"></textarea>
</div>
</div>
</div>
</div>
<input type="hidden" name="user_id" value="{$Think.session.uid}">
<div class="text-center ">
<button type="button" class="btn btn-success" id="reg">发布文章</button>
<button type="button" class="btn btn-danger " id="ret">重新输入</button>
</div>
</div>
</form>
</main>
<main class="col-md-3"></main>
</div>
<div style="padding-bottom: 10px"></div>
<script>
$(function () {
$('#reg').click(function () {
let data = new FormData($("#register")[0]);
$.ajax({
type: 'post',
url: "{:url('/article')}",
data:data,
contentType: false, //不设置内容类型
processData: false, //不处理数据
dataType: 'json',
success: function(data){
if (data.status ==1) {
swal({
text: data.message,
icon: "success",
button: false
});
function success() {
window.location.href= "{:url('index/index')}"
}
setTimeout(success,2000)
}else{
swal({
text: data.message,
icon: "warning",
button: false,
});
}
}
})
})
//表单清空
$('#ret').click(function () {
$('#register')[0].reset();
})
})
</script>
{/block}
~~~
~~~
public function save(Request $request)
{
//
// 获得前台提交的数据是否是post提交
if (\think\facade\Request::isPost()){
// 获得post提交的数据
$date = $request->param();
//调用 article 里面书写验证规则
$validata = new \app\index\common\validata\Article();
//把数据传入验证规则里面,会返回一个布尔值
$rules = $validata->check($date);
//验证通过
if ($rules){
//获取上传的标题图片信息
$file = \think\facade\Request::file('title_img'); //获取file对象
//文件信息验证与上传到服务器指定目录
$info = $file -> validate([
'size'=>5000000000, //文件大小 100万字节是约等于1M
'ext'=>'jpeg,,png,jpg,gif' //文件扩展名
]) -> move('uploads/'); //移动到public/uploads目录下面
//图片验证规则是否为真
if ($info) {
// 把图片上传的路径存储到数据表中
$date['title_img'] = $info->getSaveName();
} else {
//规则匹配不对,返回错误的信息
return ['status'=>'0','message'=>$file->getError()];
}
// halt($date);
//将数据写到文档表中
if(\app\index\model\Article::create($date)){
return ['status'=>'1','message'=>'文章发布成功'];
} else {
return ['status'=>'0','message'=>'文章发布失败'];
}
}else{
return ['status' => '0','message' => $validata->getError()];
}
} else{
return ['status' => '0','message' => '你请求的方式不正确'];
}
}
~~~
- Tp 框架5.1安装
- Tp 资源控制器创建跟非资源控制器
- Tp 自定义目录
- Tp 链接传参,地址栏获取参数
- Tp ajax 异步提交数据
- Tp 模型里面指定开启时间戳
- Tp加载验证码
- Tp 模版
- Tp 模版继承
- Tp模版页面If 条件 及session存储 取出
- Tp 默认在模版页面指定内容
- Tp 模版页面获取session
- Tp验证器
- Tp 自定义验证
- Thinkphp 模型验证规则使用
- Tp 文件上传
- Tp 实现注册自动登录
- Tp 编辑器
- Tp 结合 Markdown里面的editor编辑器
- Tp Marckdown 编辑模版输出
- Tp 搜索功能
- Tp 点赞 收藏
- Tp 基本权限
- Tp 创建验证器
- Sweetalert 弹出框 引用
- Tp 网站 开启 关闭功能
- Tp 网站 开启 注册功能
- Tq QQ登录
- Tp 邮箱注册 验证
- Tp 无限极分类
- Tp 路由
- Tp RBAC权限 适合于任何框架
- 创建权限模型,控制器,验证规则
- 创建角色 控制器 模型 验证规则
- 用户角色设置
- 权限验证
- Tp auth 权限
- 第一部 auth 安装
- 第二部 创建 三张数据库
- 第三部 创建用户控制器
- 第四部 创建规则表
- 规则表基本操作
- 1 规则页面加载
- 2 添加规则
- 3 编辑规则
- 4 删除规则
- 第五部 创建用户组
- 用户组基本操作
- 第一步 展示用户组首页
- 第二步 添加用户组
- 第三步 编辑用户组
- 第四部 删除用户组
- 第六步设置权限
- 第一步 创建 模型 控制器
- 第二步 首页显示
- 第三部 设置用户权限
- 第七步 执行权限认证
- 备注 附加规则原理
- Tp 数据库
- 外键约束
- Tp 结合layui 上传
- Layui 编辑器 前端展示
- Tp 模版eq
- Tp 删除
- Tp session 处理
- Tp cache缓存方法
- Tp 后台验证管理员登录
- 前台Nav 导航
- 左边导航
- Tp 批量删除
- O2O
- Tp框架插入数据自带时间戳
- Tp 结合layui 分页
- Tp 整合百度地图
- Tp 结合城市三级联动
- 密码验证
- 团购时间
- Tp模板时间修改
- 安卓App 平台入驻上线
- Api 接口返回
- Thinkphp 生成5.1二维码
- 回调Api
- layui 关闭框 刷新
- Layui 监听
- 判断是否是pc端 手机端
- Lauyi 自动转换时间
- Tp 增加时间
- ajax 同步 异步处理
- 弹出框
- 传输数据编辑
- 上传 引用 uploadify
- js 收缩
- Tp 增加数据表
- Tp-前置钩子
- 删除代码
- 适合tp5.0描述文字过长
- php 三级城市城市表带数据
- layu结合 tp table数据数组循环
- layui 解决数据为NUll 错误代码