亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從父級獲取過濾的子級

從父級獲取過濾的子級

PHP
瀟湘沐 2022-01-08 16:28:36
我有一對多的關系。所以我可以使用這段代碼來顯示所有帖子。$tag = Tag::where('slug', $slug)->first();$posts = $tag->posts;它工作正常,但我想過濾孩子顯示。例如:$posts = $tag::whereHas('posts', function($query){$query->where('accept', 1)})->get();但它得到標簽而不是帖子。知道如何解決我的問題嗎?
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

在 Post 模型中,您必須像這樣定義與標簽的關系


public function tags(){

    return $this->hasMany(Tag::class);

}

這就是您可以從特定標簽獲取帖子的方式


$slug = "my-slug";

$posts = Post::whereHas('tags', function($query) use ($slug){

    $query->where('slug', $slug)

})->where('accept', 1)->get();


查看完整回答
反對 回復 2022-01-08
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

文檔所述

由于所有關系也用作查詢構建器,因此您可以通過調用 comments 方法并繼續將條件鏈接到查詢上來添加進一步的約束來檢索評論:

$comment = App\Post::find(1)->comments()->where('title', 'foo')->first();

您可以將代碼更改為:

$posts = $tag->posts()->where('accept', 1)->get()


查看完整回答
反對 回復 2022-01-08
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

您可以使用


$tag = Tag::where('slug', $slug)

    ->with(['posts' => function($q) {

        $q->where('accept', 1);

    }])->first();

$posts = $tag->posts;


查看完整回答
反對 回復 2022-01-08
  • 3 回答
  • 0 關注
  • 164 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號