制作文章发布模板

基础控制器判断是否是登陆,只允许在登录状态下发布文章
制作文章发布模板_第1张图片
Base.php

<?php
namespace app\common\controller;
/**
 * 基础控制器
 * 必须继承自think\Controller.php
 * 这样其他的控制器只需要继承Base.php便可以继承Controller类
 */
use think\Controller;
use think\facade\Session;
class Base extends Controller
{
    /**
     * 初始化方法,继承至父类Controller类
     * 创建常量,公共方法
     * 在所有的方法之前被调用
     */
    protected function initialize()
    {

    }
    //检查是否已登录:防止用户重复登录,放在登录验证方法中调用
    public function logined()
    {
        //判断用户user_id是否已经存在
        if(Session::has('user_id')){
            $this->error('客官,您已经登录啦','index/index');
        }
    }
    //检查是否未登录:放在登录操作方法的最前面,例如发布文章
    public function isLogin()
    {
        //判断用户user_id是否已经存在  取反
        if(!Session::has('user_id')){
            $this->error('客官,您是不是忘记登录啦','user/login');
        }
    }
}

添加文章的控制器代码
index.php

<?php
namespace app\index\controller;
use app\common\controller\Base;//导入公共控制器
use app\common\model\ArticleCategory;//导入文章模型

class Index extends Base
{
    public function index()
    {
        return $this->fetch();
    }

    //添加文章界面
    public function insert()
    {
        //1.登录才允许发布
        $this->isLogin();
        //2.设置页面标题
        $this->view->assign('title','发布文章');
        //3.获取栏目的信息
        $cateList = ArticleCategory::all();
        if(count($cateList)>0){
            //将查询到的栏目信息赋值给模板
            $this->assign('cateList',$cateList);
        }else{
            $this->error('请先添加栏目','index/index');
        }
        //4.发布界面渲染
       return  $this->fetch('insert');
    }
}

文章发布模板
insert.html

{extend name="public/base"}
{block name="body"}
<div class="row">
    <div class="col-md-8">
        <div class="page-header">
            <h2>发布文章</h2>
        </div>
        <form action="{:url('index/index/save')}" 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>
                    <input type="text" name="title" class="form-control" id="title" placeholder="Title">
            </div>
            <div class="form-group">
                <label for="title" class="col-sm-2 control-label">分类</label>
                <select name="cate_id" id="" class="form-control">
                    {volist name="cateList" id="cate"}
                        <option value="{$cate.id}">{$cate.name}</option>
                    {/volist}
                </select>
            </div>
            <div class="form-group">
                <label for="title" class="col-sm-2 control-label">内容</label>
                <textarea class="form-control" name="content" id="content" style="min-height: 250px"></textarea>
            </div>
            <div class="form-group">
                <label for="title" class="col-sm-2 control-label">标题图片</label>
                <input type="file" name="title_img" class="form-control" id="title_img" placeholder="标题图片">
            </div>
            <div class="form-group">
                <button type="submit" class="btn btn-primary" id="submit">保存</button>
            </div>
        </form>
    </div>
{/block}

你可能感兴趣的:(ThinkPHP,5.1)