ThinkPHP5&5.1框架關(guān)聯(lián)模型分頁(yè)操作示例
本文實(shí)例講述了ThinkPHP5&5.1框架關(guān)聯(lián)模型分頁(yè)操作。分享給大家供大家參考,具體如下:
利用數(shù)據(jù)庫(kù)的分頁(yè)通常比較簡(jiǎn)單,但在實(shí)際項(xiàng)目中,我們往往需要處理復(fù)雜的數(shù)據(jù),例如多表操作,這時(shí)候我們就需要利用模型層的關(guān)聯(lián)操作得到最終想要的數(shù)據(jù),而這些數(shù)據(jù)我們其實(shí)也是可以利用ThinkPHP5&5.1內(nèi)置的分頁(yè)引擎進(jìn)行分頁(yè)的。
賣(mài)的車(chē)輛我們稱(chēng)之為車(chē)源,車(chē)源和車(chē)主之間是多對(duì)一關(guān)系(車(chē)主可以有多輛車(chē),一輛車(chē)只屬于一個(gè)車(chē)主);車(chē)源和車(chē)輛圖片之間是一對(duì)多關(guān)系(一輛車(chē)有多個(gè)圖片,一個(gè)圖片只屬于一輛車(chē));車(chē)輛還有自定義屬性,它們之間是多對(duì)多關(guān)系,車(chē)輛的級(jí)別在車(chē)源表是個(gè)數(shù)字,具體名稱(chēng)需要到級(jí)別表獲取。。。。可以看出,這塊是非常復(fù)雜的,完全使用數(shù)據(jù)庫(kù)操作會(huì)非常復(fù)雜,所以我們選擇使用模型層進(jìn)行處理。
首先建立模型之間的關(guān)系:
public function selfattribute()
{
return $this->belongsToMany("Selfattribute",'cars_selfattribute','selfattribute_id','cars_id');
}
public function carsimg()
{
return $this->hasMany('Carsimg');
}
public function member()
{
return $this->belongsTo('\app\index\model\Member');
}
同時(shí)對(duì)應(yīng)的模型也要建立對(duì)應(yīng)的方法。
在控制器層寫(xiě)方法:
public function lst()
{
$cars_model = model("Cars");
$cars_list = $cars_model->getCarsList();
$this->assign("cars_list",$cars_list);
// dump($cars_list);
return view();
}
其中g(shù)etCarsList()方法在模型層中實(shí)現(xiàn):
public function getCarsList()
{
$cars_list = Cars::paginate(2)->each(function($value,$key){
$level_find = db("level")->where('id',$value['level'])->value('name');
$value['level_name'] = $level_find;
$value->carsimg;
$value->member;
$value->selfattribute;
});
return $cars_list;
}
模板上寫(xiě)法同普通分頁(yè):
<div class="ibox-content">
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>名稱(chēng)</th>
<th>車(chē)主</th>
<th>狀態(tài)</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="cars_list" id="vo"}
<tr>
<td>{$vo.id}</td>
<td><a href="{:url('index/cars/carsdetails',array('id'=>$vo.id))}" rel="external nofollow" >{$vo.full_name}</a></td>
<td>{$vo.member.member_name}</td>
<td>
{switch $vo.status}
{case 1}上架{/case}
{case 0}下架{/case}
{case -1}已售{/case}
{default /}未審核
{/switch}
</td>
<td>
<div class="btn-group open">
<button data-toggle="dropdown" class="btn btn-primary dropdown-toggle" aria-expanded="true">操作 <span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a href="">修改</a>
</li>
<li><a href="">刪除</a>
</li>
</ul>
</div>
</td>
</tr>
{/volist}
</tbody>
</table>
{$cars_list|raw}
</div>

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
nginx簡(jiǎn)單配置多個(gè)php服務(wù)實(shí)例教程
nginx安裝剛安裝好是不能訪問(wèn)php文件的,需要我們進(jìn)行配置,下面這篇文章主要給大家介紹了關(guān)于nginx簡(jiǎn)單配置多個(gè)php服務(wù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
thinkphp5.1驗(yàn)證碼及驗(yàn)證碼驗(yàn)證功能的實(shí)現(xiàn)詳解
這篇文章主要介紹了thinkphp5.1驗(yàn)證碼及驗(yàn)證碼驗(yàn)證功能的實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
Yii結(jié)合CKEditor實(shí)現(xiàn)圖片上傳功能
這篇文章主要介紹了Yii結(jié)合CKEditor實(shí)現(xiàn)圖片上傳功能,Yii是大名鼎鼎的PHP開(kāi)發(fā)框架,CKEditor則是大名鼎鼎的所見(jiàn)即所得編輯器,需要的朋友可以參考下2014-06-06
基于Laravel5.4實(shí)現(xiàn)多字段登錄功能方法示例
最近在工作中遇到一個(gè)需求,需要實(shí)現(xiàn)多字段登錄的一個(gè)效果,就是可以使用手機(jī)或者郵箱任一種方式的登錄,現(xiàn)在將解決的過(guò)程分享出來(lái),所以這篇文章主要給大家介紹了基于Laravel5.4實(shí)現(xiàn)多字段登錄功能的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08
分享一個(gè)PHP數(shù)據(jù)流應(yīng)用的簡(jiǎn)單例子
分享一個(gè)PHP數(shù)據(jù)流應(yīng)用的簡(jiǎn)單例子,需要的朋友可以參考下2012-06-06
Laravel5.1 框架模型一對(duì)一關(guān)系實(shí)現(xiàn)與使用方法實(shí)例分析
這篇文章主要介紹了Laravel5.1 框架模型一對(duì)一關(guān)系實(shí)現(xiàn)與使用方法,結(jié)合實(shí)例形式分析了laravel5.1框架模型一對(duì)一關(guān)系的原理、定義與使用方法,需要的朋友可以參考下2020-01-01
php 無(wú)限級(jí)數(shù)據(jù)JSON格式及JS解析
公司要做個(gè)Flash效果的頁(yè)面,需要個(gè)無(wú)限級(jí)樹(shù),顯示用戶邀請(qǐng)的好友及其下線,由此就構(gòu)成了無(wú)限級(jí)的關(guān)系,可能下線有無(wú)限多。2010-07-07
PHP中利用Telegram的接口實(shí)現(xiàn)免費(fèi)的消息通知功能
這篇文章主要介紹了PHP中利用Telegram的接口實(shí)現(xiàn)免費(fèi)的消息通知功能,Telegram的通知就像短信提醒一樣。具體實(shí)現(xiàn)代碼大家參考下本文2017-12-12
WordPress偽靜態(tài)規(guī)則設(shè)置代碼實(shí)例
這篇文章主要介紹了WordPress偽靜態(tài)規(guī)則設(shè)置代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12

