日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php模型分页代码,ThinkPHP6.0模型关联分页

發(fā)布時間:2024/10/6 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php模型分页代码,ThinkPHP6.0模型关联分页 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

模型關(guān)聯(lián)分頁簡單案例,標簽關(guān)聯(lián)文章,對文章進行分頁,上一篇文章寫得比較繁瑣,這里可以將問題拆解成一對多關(guān)系,那么問題就迎刃而解了。

我們可以通過查詢tag直接拿到tag_id,通過中間表和文章表關(guān)聯(lián)一對多實現(xiàn)關(guān)聯(lián)分頁,總體代碼量會精簡許多,而且能達到相同的效果,下面來看看吧!

文章模型

namespace app\admin\model;

class News extends Common

{

protected $autoWriteTimestamp = true;// 開啟自動寫入時間戳字段

/*

* 定義了修改器之后會在下列情況下觸發(fā):

* 模型對象賦值;

* 調(diào)用模型的data方法,并且第二個參數(shù)傳入true;

* 調(diào)用模型的save方法,并且傳入數(shù)據(jù);

* 顯式調(diào)用模型的setAttr方法;

* 定義設(shè)置文章的描述,若為空直接截取內(nèi)容前面的文字

*/

public function setAbstractAttr($abstract, $news)

{

$abstract=str_replace(' ','',$abstract);

if (empty($abstract)){

return mb_substr(strip_tags(htmlspecialchars_decode($news['content'])), 0, 100, 'utf-8');

}else{

return $abstract;

}

}

//

public function tags()

{

return $this->belongsToMany('Tags', '\\app\\admin\\model\\NewsTags', 'tags_id','news_id');

}

public function newsCategory()

{

return $this->belongsTo('NewsCategory', 'news_category_id', 'id');

}

//關(guān)聯(lián)中間表

public function newsTags()

{

return $this->belongsTo(NewsTags::class,'id', 'news_id');

}

}

中間表模型

namespace app\admin\model;

use think\model\Pivot;

class NewsTags extends Pivot

{

}

具體分頁代碼

public function index()

{

$data=$this->request->param();

$tag_name=$data['name'];

$tag=Tags::where('name',$tag_name)->find();

$news = News::hasWhere('newsTags',array('tags_id'=>$tag->id))->with('newsCategory')->paginate(1);

return view('index',compact('tag','news'));

}

分頁

實現(xiàn)了和上個版本相同的效果,明顯更優(yōu)。希望對大家有所幫助!

總結(jié)

以上是生活随笔為你收集整理的php模型分页代码,ThinkPHP6.0模型关联分页的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。