1. 程式人生 > >Thinkphp學習筆記——新增友情連結(一)

Thinkphp學習筆記——新增友情連結(一)

*============在公共模板的左側列表 增加友情連結列表==============↓
D:\phpStudy\WWW\niwo\application\admin\view\common\left.html
複製內容:
<li>
            <a href="#" class="menu-dropdown">
                <i class="menu-icon fa fa-gear"></i>
                <span class="menu-text">系統</span>
                <i class="menu-expand"></i>
            </a>
            <ul class="submenu">
                <li>
                    <a href="/admin/document/index.html">
                                    <span class="menu-text">
                                        配置                                   </span>
                        <i class="menu-expand"></i>
                    </a>
                </li>
            </ul>
        </li>
修改內容:
<li>
            <a href="#" class="menu-dropdown">
                <i class="menu-icon fa fa-gear"></i>
                <span class="menu-text">友情連結</span>
                <i class="menu-expand"></i>
            </a>
            <ul class="submenu">
                <li>
                    <a href="/admin/document/index.html">
                                    <span class="menu-text">
                                        連結列表                                  </span>
                        <i class="menu-expand"></i>
                    </a>
                </li>
            </ul>
        </li>

        <li>
            <a href="#" class="menu-dropdown">
                <i class="menu-icon fa fa-gear"></i>
                <span class="menu-text">系統</span>
                <i class="menu-expand"></i>
            </a>
            <ul class="submenu">
                <li>
                    <a href="/admin/document/index.html">
                                    <span class="menu-text">
                                        配置                                   </span>
                        <i class="menu-expand"></i>
                    </a>
                </li>
            </ul>
        </li>
http://127.0.0.1/niwo/public/index.php/admin

*============在公共模板的左側列表 增加友情連結列表==============↑
*============修改友情連結的圖示==============↓

http://www.yidt.cn/Home/FontAwesome
右鍵點選要修改的圖示,在彈出的選單中,選擇檢查按鈕,在右側的除錯資訊中,找的該圖示的class,並修改:
比如,把
                <i class="menu-icon fa fa-anchor"></i>
                <span class="menu-text">友情連結</span>
修改為:
                <i class="menu-icon fa fa-bolt"></i>
                <span class="menu-text">友情連結</span>
其中,可供選擇的圖示,可以在Dashboard   Elements   Icons   FontAwesome中找到。

*============修改友情連結的圖示==============↑
*============在資料庫建立tp_links 列表的欄位資訊==============↓
新建資料表
名字:
tp_links
欄位數:
4

編輯欄位資訊:
名字 
id
型別
MEDIUMINT
索引
PRIMARY
A_I(自增)
勾選
註釋
連結id

名字
title
型別
VARCHAR
長度/值
30
註釋
連結標題

名字
url
型別
VARCHAR
長度/值
60
註釋
連結地址

名字
desc
型別
VARCHAR
長度/值
255
註釋
連結說明

儲存引擎
MyISAM

點選 儲存
*============在資料庫建立tp_links 列表的欄位資訊===============↑
*============在控制器下、模組下、驗證器下、建立友情連結檔案和資料夾==============↓

D:\phpStudy\WWW\niwo\application\admin\controller
複製Admin.php檔案,重新命名Links.php

D:\phpStudy\WWW\niwo\application\admin\model
複製Admin.php檔案,重新命名Links.php

D:\phpStudy\WWW\niwo\application\admin\validate
複製Admin.php檔案,重新命名Links.php

D:\phpStudy\WWW\niwo\application\admin\view
複製Admin資料夾,重新命名links資料夾


*============在控制器下、模組下、驗證器下、建立友情連結檔案和資料夾==============↑
*============修改控制器下 修改友情連結檔案==============↓

D:\phpStudy\WWW\niwo\application\admin\controller\Links.php
原內容
<?php
namespace app\admin\controller;
use think\Controller;
use app\admin\model\Admin as AdminModel; // 引入model類、位置、名稱有重名的要改名字
class Admin extends Controller
{
    public function lst()
    {
        $list = AdminModel::paginate(3);// 分頁輸出列表 每頁顯示3條資料
        $this ->assign('list',$list); // 把$list,分配到模板list
        return $this->fetch();//把資料返回給檢視。
    }
//    public function lst()
//    {
//        return $this->fetch();
//    }
    public function add()
    {
        if(request()->isPost()){
            $data=[
                'username'=>input('username'),
                'password'=>input('password'),
            ];
            $validate = \think\Loader::validate('Admin');//例項化validate 
            if(!$validate->scene('add')->check($data)){ //在add場景下,驗證$data裡面的資料,如果驗證沒有通過
                $this->error($validate->getError()); die; //獲取錯誤資訊並列印。 
            }
            if(db('admin')->insert($data)){
                return $this->success('新增管理員成功!','lst');
            }else{
                return $this->error('新增管理員失敗!');
            }
            return;
        }
        return $this->fetch();
    }

    public function edit(){
        $id = input('id'); //把網頁提交過來的id資料,儲存在$id裡。
        $admins = db('admin')->find($id);// 在資料庫的admin表單,以id為欄位進行查詢。把找到的資料,儲存到$admins
        if(request()->isPost()){ // 處理表單資料(判斷是否以表單提交資料->post是從表單提交資料)
            $data = [ // 接收資料以陣列格式
                'id' =>input('id'),
                'username' =>input('username'),
                'password' =>input('password'),
            ];
            if(input('password')){ // 如果修改管理員密碼
                $data['password'] = md5(input('password')); // 在$data陣列中修改,然後加密
            }else{
                $data['password'] = $admins['password']; // 否則密碼留空,用原有密碼
            }
            $validate = \think\Loader::validate('Admin');
            if(!$validate->scene('edit')->check($data)){ // 在編輯場景驗證
                $this->error($validate->getError()); die;
            }
            if(db('admin')->update($data)){ // 將資料庫的admin表格修改成陣列$data形式
                $this->success('修改管理員成功!','lst');
            }else{
                $this->error('修改管理員失敗!');
            }
            return; // 要處理資料,return下面的就不顯示
        }
        $this->assign('admins',$admins); // 分配顯示在模板中(分配到模板中的值,值等於$admins/這兩個要對應)
        return $this->fetch();
    }

    public function del(){ // 刪除的方法
        $id = input('id'); //把網頁提交過來的id資料,儲存在$id裡
        if($id != 1) { // 如果$id不等於1
            if (db('admin')->delete(input('id'))) { //在資料庫的admin表單,刪除以id為欄位資料內容。
                $this->success('刪除管理員成功!', 'lst');
            } else {
                $this->error('刪除管理員失敗!');
            }
        }else{
            $this->error('初始化管理員不能刪除!');

        }
    }

}
修改內容:
把大部分的admin修改成了Links
<?php
namespace app\admin\controller;
use think\Controller;
use app\admin\model\Links as LinksModel; // 引入model類、位置、名稱有重名的要改名字
class Links extends Controller
{
    public function lst()
    {
        $list = LinksModel::paginate(3);// 分頁輸出列表 每頁顯示3條資料
        $this ->assign('list',$list); // 分配到模板名稱為list,值就是獲取到的
        return $this->fetch();
    }
    public function add()
    {
        if(request()->isPost()){
            $data=[
                'username'=>input('username'),
                'password'=>input('password'),
            ];
            $validate = \think\Loader::validate('Links');
            if(!$validate->scene('add')->check($data)){
                $this->error($validate->getError()); die;
            }
            if(db('Links')->insert($data)){
                return $this->success('新增管理員成功!','lst');
            }else{
                return $this->error('新增管理員失敗!');
            }
            return;
        }
        return $this->fetch();
    }

    public function edit(){
        $id = input('id');
        $Linkss = db('Links')->find($id);// 將資料庫的Links表格修改成陣列$data形式
        if(request()->isPost()){ // 處理表單資料(判斷是否以表單提交資料->post是從表單提交資料)
            $data = [ // 接收資料以陣列格式
                'id' =>input('id'),
                'username' =>input('username'),
                'password' =>input('password'),
            ];
            if(input('password')){ // 如果修改管理員密碼
                $data['password'] = md5(input('password')); // 在$data陣列中修改,然後加密
            }else{
                $data['password'] = $Linkss['password']; // 否則密碼留空,用原有密碼
            }
            $validate = \think\Loader::validate('Links');
            if(!$validate->scene('edit')->check($data)){ // 在編輯場景驗證
                $this->error($validate->getError()); die;
            }
            if(db('Links')->update($data)){ // 將資料庫的Links表格修改成陣列$data形式
                $this->success('修改管理員成功!','lst');
            }else{
                $this->error('修改管理員失敗!');
            }
            return; // 要處理資料,return下面的就不顯示
        }
        $this->assign('Linkss',$Linkss); // 分配顯示在模板中(分配到模板中的值,值等於$Linkss/這兩個要對應)
        return $this->fetch();
    }

    public function del(){ // 刪除的方法
        $id = input('id'); // 把input('id')賦值給$id
        if($id != 1) { // 如果$id不等於1
            if (db('Links')->delete(input('id'))) {
                $this->success('刪除管理員成功!', 'lst');
            } else {
                $this->error('刪除管理員失敗!');
            }
        }else{
            $this->error('初始化管理員不能刪除!');

        }
    }

}

*============修改控制器下、修改友情連結檔案==============↑
*============驗證器下 修改友情連結檔案==============↓

D:\phpStudy\WWW\niwo\application\admin\model\Links.php
修改內容:
<?php
namespace app\admin\model;
use think\Model; // 引入模型這個類
class Links extends Model // 繼承模型這個類
{

}

D:\phpStudy\WWW\niwo\application\admin\validate\Links.php
原內容
class Admin extends Validate // 繼承引用過來的類
修改為:
class Links extends Validate // 繼承引用過來的類

*============驗證器下 修改友情連結檔案==============↑

*============修改公共檔案下的left檔案==============↓

D:\phpStudy\WWW\niwo\application\admin\view\common\left.html
原內容
<li>
                    <a href="/admin/document/index.html">
                                    <span class="menu-text">
                                        連結列表                                  </span>
                        <i class="menu-expand"></i>
                    </a>
                </li>
修改為:
<li>
                    <a href="{:url('links/lst')}">
                                    <span class="menu-text">
                                        連結列表                                  </span>
                        <i class="menu-expand"></i>
                    </a>
                </li>

*============修改公共檔案下的left檔案==============↑
*============修改視圖裡友情連結的查詢和新增==============↓

D:\phpStudy\WWW\niwo\application\admin\view\links\lst.html
修改為:
<div class="page-breadcrumbs">
                <ul class="breadcrumb">
                    <li>
                        <a href="#">系統</a>
                    </li>
                    <li class="active">連結管理</li>
                </ul>
            </div>

D:\phpStudy\WWW\niwo\application\admin\view\links\lst.html
把“使用者”全部替換成“連線”
修改內容:
<button type="button" tooltip="新增連線" class="btn btn-sm btn-azure btn-addon" onClick="javascript:window.location.href = '{:url('Links/add')}'"> <i class="fa fa-plus"></i> Add
                </button>

D:\phpStudy\WWW\niwo\application\admin\view\links\add.html
把“管理員”全部替換成“連線”

*============修改視圖裡友情連結的查詢和新增==============↑

*============修改視圖裡的友情連結和新增檔案樣式==============↓

D:\phpStudy\WWW\niwo\application\admin\view\links\add.html
修改內容:
<!-- Page Breadcrumb -->
            <div class="page-breadcrumbs">
                <ul class="breadcrumb">
                    <li>
                        <a href="#">系統</a>
                    </li>
                    <li>
                        <a href="{:url('links/lst')}">連線管理</a>
                    </li>
                    <li class="active">新增連線</li>
                </ul>
            </div>
原內容
<div class="form-group">
                                            <label for="username" class="col-sm-2 control-label no-padding-right">連線名</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="username" placeholder="" name="username" | type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>

                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線密碼</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="password" placeholder="" name="password" |type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>
                                        <div class="form-group">
                                            <div class="col-sm-offset-2 col-sm-10">
                                                <button type="submit" class="btn btn-default">儲存資訊</button>
                                            </div>
修改為:
<div class="form-group">
                                            <label for="username" class="col-sm-2 control-label no-padding-right">連線標題</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="username" placeholder="" name="username" | type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>

                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線地址</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="password" placeholder="" name="password" |type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>
                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線描述</label>
                                            <div class="col-sm-6">
                                              <textarea></textarea>  
                                            </div>
                                        </div>
                                        <div class="form-group">
                                            <div class="col-sm-offset-2 col-sm-10">
                                                <button type="submit" class="btn btn-default">儲存資訊</button>
                                            </div>

// 連線描述的樣式

                                        </div>
<div class="col-sm-6">
                                              <textarea class="form-control" ></textarea>
                                            </div>

*============修改視圖裡的友情連結和新增檔案樣式==============↑

*============修改視圖裡友情連結和新增檔案傳送的資料==============↓

D:\phpStudy\WWW\niwo\application\admin\view\links\add.html
原內容
<div class="form-group">
                                            <label for="username" class="col-sm-2 control-label no-padding-right">連線標題</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="username" placeholder="" name="username" | type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>

                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線地址</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="password" placeholder="" name="password" |type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>
                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線描述</label>
                                            <div class="col-sm-6">
                                              <textarea class="form-control" ></textarea>
                                            </div>

修改內容:
<div class="form-group">
                                            <label for="username" class="col-sm-2 control-label no-padding-right">連線標題</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="title" placeholder="" name="title" | type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>

                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線地址</label>
                                            <div class="col-sm-6">
                                                <input class="form-control" id="url" placeholder="" name="url" |type="text">
                                            </div>
                                            <p class="help-block col-sm-4 red">* 必填</p>
                                        </div>
                                        <div class="form-group">
                                            <label for="group_id" class="col-sm-2 control-label no-padding-right">連線描述</label>
                                            <div class="col-sm-6">
                                              <textarea name = "desc" class="form-control" ></textarea>
                                            </div>


D:\phpStudy\WWW\niwo\application\admin\controller\Links.php
原內容
if(request()->isPost()){
            $data=[
                'username'=>input('username'),
                'password'=>input('password'),
            ];
            $validate = \think\Loader::validate('Links');
            if(!$validate->scene('add')->check($data)){
                $this->error($validate->getError()); die;
            }
            if(db('Links')->insert($data)){
                return $this->success('新增管理員成功!','lst');
            }else{
                return $this->error('新增管理員失敗!');
            }
            return;
修改為:
if(request()->isPost()){
            $data=[
                'title'=>input('title'),
                'url'=>input('url'),
                'desc'=>input('desc'),
            ];
            $validate = \think\Loader::validate('Links');
            if(!$validate->scene('add')->check($data)){
                $this->error($validate->getError()); die;
            }
            if(db('Links')->insert($data)){
                return $this->success('新增連結成功!','lst');
            }else{
                return $this->error('新增連結失敗!');
            }
            return;

D:\phpStudy\WWW\niwo\application\admin\view\links\lst.html
原內容
<table class="table table-bordered table-hover">
                                        <thead class="">
                                        <tr>
                                            <th class="text-center"width="4%">ID</th>
                                            <th class="text-center"width="70%">連線名稱</th>
                                            <th class="text-center"width="14%">操作</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                        {volist name="list" id="vo"}
                                        <tr>
                                            <td align="center">{$vo.id}</td>
                                            <td align="center">{$vo.username}</td>

修改為:
<table class="table table-bordered table-hover">
                                        <thead class="">
                                        <tr>
                                            <th class="text-center"width="4%">ID</th>
                                            <th class="text-center">連線名稱</th>
                                            <th class="text-center">連線地址</th>
                                            <th class="text-center">連線描述</th>
                                            <th class="text-center"width="14%">操作</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                        {volist name="list" id="vo"}
                                        <tr>
                                            <td align="center">{$vo.id}</td>
                                            <td align="center">{$vo.title}</td>
                                            <td align="center">{$vo.url}</td>
                                            <td align="center">{$vo.desc}</td>
http://127.0.0.1/niwo/public/index.php/admin/links/lst.html
就不會報錯了

*============修改視圖裡友情連結和新增檔案傳送的資料==============↑

*============把視圖裡友情連結連線和地址變成網址==============↓

D:\phpStudy\WWW\niwo\application\admin\view\links\lst.html
原內容
<tr>
                                            <td align="center">{$vo.id}</td>
                                            <td align="center">{$vo.title}</td>
                                            <td align="center">{$vo.url}</td>
                                            <td align="center">{$vo.desc}</td>
                                            <td align="center">
                                                <a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny">
                                                    <i class="fa fa-edit"></i> 編輯
                                                </a>
                                                {if condition="$vo['id'] neq 1"}
                                                <a href="#" onClick="warning('確實要刪除嗎', '{:url('admin/del',array('id'=>$vo['id']))}" class="btn btn-danger btn-sm shiny">
                                                    <i class="fa fa-trash-o"></i> 刪除
                                                </a>
                                                {/if}
                                            </td>
                                        </tr>
修改為:
<tr>
                                            <td align="center">{$vo.id}</td>
                                            <td align="center">{$vo.title}</td>
                                            <td align="center"><a href="{$vo.url}" target="_black">{$vo.url}</a></td>
                                            <td align="center">{$vo.desc}</td>
                                            <td align="center">
                                                <a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny">
                                                    <i class="fa fa-edit"></i> 編輯
                                                </a>
                                                {if condition="$vo['id'] neq 1"}
                                                <a href="#" onClick="warning('確實要刪除嗎', '{:url('admin/del',array('id'=>$vo['id']))}" class="btn btn-danger btn-sm shiny">
                                                    <i class="fa fa-trash-o"></i> 刪除
                                                </a>
                                                {/if}
                                            </td>
                                        </tr>

*============把視圖裡友情接連結連和地址變成網址==============↑

*============驗證、驗證器裡的友情連結==============↓

D:\phpStudy\WWW\niwo\application\admin\validate\Links.php
修改為:
<?php
namespace app\admin\validate;
use think\Validate; // 引入了空間類檔案
class Links extends Validate // 繼承引用過來的類
{
    // 驗證規則就寫在這個數組裡面
   protected $rule = [
        'title'  =>  'require|max:25',
        'url' =>  'require',
   ];
    // 錯誤提示
   protected $message  =   [
     'title.require' => '連結標題必須填寫',
        'title.max' => '連結的標題長度不能大於25位',
        'url.require' => '連結的地址必須填寫',
    ];
    // 驗證 scene 場景
    protected $scene = [
       'add'  =>  ['title','url'], // 在新增場景限定[]裡的驗證
       'edit'  => ['title','url'],
    ];
}

D:\phpStudy\WWW\niwo\application\admin\view\links\lst.html
原內容
<td align="center"><a href="{$vo.url}" target="_black">{$vo.url}</a></td>
                                            <td align="center">{$vo.desc}</td>
修改為:
 <td align="center"><a href="{$vo.url}" target="_black">{$vo.url}</a></td>
                                            <td align="center">
                                                  {if condition="$vo['desc'] neq ''"}
                                                  {$vo.desc}
                                                  {else /}
                                                   暫無描述
                                                  {/if}
                                                 </td>
                                                    


修改隱藏介面
原內容
<a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny">
                                                    <i class="fa fa-edit"></i> 編輯
                                                </a>
                                                {if condition="$vo['id'] neq 1"}
                                                <a href="#" onClick="warning('確實要刪除嗎', '{:url('admin/del',array('id'=>$vo['id']))}" class="btn btn-danger btn-sm shiny">
                                                    <i class="fa fa-trash-o"></i> 刪除
                                                </a>
                                                {/if}
修改為:

<a href="{:url('admin/edit',array('id'=>$vo['id']))}" class="btn btn-primary btn-sm shiny">
                                                    <i class="fa fa-edit"></i> 編輯
                                                </a>
                                                
                                                <a href="#" onClick="warning('確實要刪除嗎', '{:url('admin/del',array('id'=>$vo['id']))}" class="btn btn-danger btn-sm shiny">
                                                    <i class="fa fa-trash-o"></i> 刪除
                                                </a>

*============驗證、驗證器裡的友情連結==============↑