[thinkPHP5项目实战_18]友情链接界面搭建和数据添加
文章栏目109410940
发布时间:2019-12-28 10:04:29

概述

类似于添加栏目和文章完善添加友情链接的功能

分别新建友情链接link对应的视图模板、控制器和验证器文件:

[thinkPHP5项目实战_18]友情链接界面搭建和数据添加

打开phpmyadmin,新建tp5_link数据表储存链接信息:

[thinkPHP5项目实战_18]友情链接界面搭建和数据添加

修改侧边栏导航sidebar.html文件,添加友情链接列表导航

<li><a href="{:url('link/lists')}">友情链接</a></li>

在友情链接列表模板Link/lists.html中添加新增链接跳转

<a href="{:url('link/add')}"><i class="icon-font"></i>新增链接</a>

新建Link/add.html文件作为增加模板,友情链接的四个字段分别为id,链接题目title,链接url地址url,链接描述desc

post提交方式,默认提交到当前控制器的当前操作方法

<form action="" method="post" id="myform" name="myform" enctype="multipart/form-data">
    <table class="insert-tab" width="100%">
        <tbody>
            <tr>
                <th width="10%">链接名称:</th>
                <td>
                    <input class="common-text required" id="title" name="title" size="50" value="" type="text">
                </td>
            </tr>
            <tr>
                <th>链接地址:</th>
                <td>
                    <input class="common-text" name="url" size="50" value="" type="text">
                </td>
            </tr>
            <tr>
                <th>链接描述:</th>
                <td>
                    <textarea name="desc" class="common-textarea" id="desc" cols="30" style="width: 98%;" rows="10"></textarea>
                </td>
            </tr>
            <tr>
                <th></th>
                <td>
                    <input class="btn btn-primary btn6 mr10" value="提交" type="submit">
                    <input class="btn btn6" οnclick="history.go(-1)" value="返回" type="button">
                </td>
            </tr>
        </tbody>
    </table>
</form>

新建validate/Link.php验证器

需要验证链接标题,链接地址的格式:

<?php
namespace app\admin\validate;

use think\Validate;

class Link extends Validate
{
    //验证规则
    protected $rule = [
        'title'  =>  'require|max:25|unique:link',
        'url' => 'require|url',
    ];
    //验证提示
    protected $message  =   [
        'title.unique' => '链接名称不能重复',
        'title.max' => '链接名称不能大于5个字符',
        'title.require' => '链接名称必须',
        'url.require' => '链接地址必须',
        'url.url' => '无效的url地址',
    ];
}

新建controller/Link.php作为链接模板的控制器

<?php
namespace app\admin\controller;
use think\Controller;
class Link extends Controller
{
    public function lists()
    {
        return $this->fetch();
    }

    public function add()
    {
        if(request()->isPost()){
            $data = [
                'title'=>input('title'),
                'url'=>input('url'),
                'desc'=>input('desc'),
            ];
            $validate = \think\Loader::validate('Link');
            if($validate->check($data)){
                $res = \think\Db::name('link')->insert($data);
                if($res){
                    return $this->success('添加链接成功','lists');
                }else{
                    return $this->error('添加链接失败');
                }
            }else{
                return $this->error($validate->getError());
            }
            return;
        }
        return $this->fetch();
    }
}

最终效果如下:

[thinkPHP5项目实战_18]友情链接界面搭建和数据添加