Thinkphp學習筆記——新增友情連結(一)
阿新 • • 發佈:2019-01-04
*============在公共模板的左側列表 增加友情連結列表==============↓ 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>
*============驗證、驗證器裡的友情連結==============↑