基于布尔参数的 Laravel eloquent call realtionship
Posted
技术标签:
【中文标题】基于布尔参数的 Laravel eloquent call realtionship【英文标题】:Laravel eloquent call realtionship based on a boolean parameter 【发布时间】:2022-01-03 05:32:54 【问题描述】:我正在尝试创建一种方法来检索具有关系的模型,我希望能够基于布尔参数获取关系 例如,我可以使用下面的 if 条件来做到这一点
if($load == true)
$users = User::with('login')->all()->paginate();
else
$users = User::all()->paginate();
我想知道是否有办法在不使用 if 条件的情况下做到这一点
【问题讨论】:
【参考方案1】:您可以在查询生成器上使用when()
方法。请注意,当您想使用分页器时,不需要使用all()
方法。
User::query()
->when($load, fn($query) => $query->with('login'))
->paginate();
【讨论】:
非常感谢【参考方案2】:你可以使用when方法:
$users = User::when($load, function ($query)
return $query->with('login');
)->paginate(10);
when 方法仅在第一个参数为真时执行给定的闭包。如果第一个参数为 false,则不会执行闭包
【讨论】:
谢谢你的工作以上是关于基于布尔参数的 Laravel eloquent call realtionship的主要内容,如果未能解决你的问题,请参考以下文章
PHP Laravel - Eloquent 在调用方法 json 时随机返回布尔字段,有时为 0 1,其他为 true false