我如何在laravel中放置条件?

Posted

技术标签:

【中文标题】我如何在laravel中放置条件?【英文标题】:How can i put condition in relation in laravel? 【发布时间】:2020-08-18 23:42:09 【问题描述】:

我有 File 模型来存储我的图像,并且我有 shop 模型,商店可以有许多图像,并且在商店模型中我编写了以下代码:

public function Files()
    
        return $this->hasMany('system\models\file', 'attachment_id');
    

我想用它的图像检索商店模型,现在我的问题是如何将 where 条件放在相关的位置。我的检索商店模型的代码是:

$shop = Shop::where('id', $id)->with('ShopType', 'User', 'Files')->get();

注意:我需要为在 Files 方法中设置的主题之一调用 attachment_id 的关系设置 2 个条件,而我的第二个条件是 attachment_type 请帮我。谢谢

【问题讨论】:

【参考方案1】:

型号

public function all()  
     return $this->hasManyThrough('ShopType', 'User', 'Files');
 

然后

$shop = Shop::with('all')->where('id',$id)->get();

【讨论】:

如何在此代码中添加它:$shop = Shop::where('id', $id)->with('ShopType', 'User', 'Files')->get(); 您可以在模型public function all() return $this->hasManyThrough('ShopType', 'User', 'Files'); $shop = shop::with('all')->where('id',$id)->get(); 中使用此语法【参考方案2】:

你可以使用 constraining-eager-loads:

$shop = Shop::with(['ShopType','User', 'Files'=>function ($query)use($id)

query->where('id', $id);

])->get();

更多细节在:

https://laravel.com/docs/7.x/eloquent-relationships#constraining-eager-loads

【讨论】:

以上是关于我如何在laravel中放置条件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在翡翠中放置一个有条件的html标签?

关于如何在 Ios 中放置纵横比的问题。

在 Laravel->Blade 中放置一些变量的最佳方法

在Laravel项目中放置Crawler脚本的位置?

是否可以在 Form::submit(' ') 中放置一个引导字形图标 - Laravel

Wordpress:如何在菜单中放置小部件区域