如果 id 不为 null 则返回,laravel 雄辩
Posted
技术标签:
【中文标题】如果 id 不为 null 则返回,laravel 雄辩【英文标题】:return if id not null, laravel elequent 【发布时间】:2020-02-17 04:42:55 【问题描述】:我已经连接了具有hasMany
和belongsTo
关系的表。
新娘模特:
public function plans()
return $this->hasMany("App\Plan");
计划模型:
public function bridal()
return $this->belongsTo("App\Bridal");
我有一个将这些数据返回到端点的查询。
public function bridal()
$bridals = Bridal::with(["plans" => function($query)
$query->orderBy("plans.plan_price");
])
->groupBy("place_name")
->get();
return $bridals;
一切都很好,除了一件事。在新娘表中,一些 ID 没有计划。所以当我返回数据时,一些bridal id
带有一个空的Plans
数组。
我想阻止这种情况。如果bridal id
没有计划,那么我不想归还那个新娘身份证。我怎样才能在这里实现我想要的?
【问题讨论】:
【参考方案1】:您可以使用拥有。如果您只使用has('relation')
,则意味着您只想获取在此关系中至少有一个相关模型的模型。
$bridals = Bridal::with(["plans" => function($query)
$query->orderBy("plans.plan_price");
])->has('plans')
->groupBy("place_name")
->get();
查看更多信息SO answer
【讨论】:
谢谢,也感谢您的解释链接。我会检查它作为答案。 乐于助人。【参考方案2】:在您的查询中添加 whereHas() :这样您将获得有计划的新娘记录
$bridals = Bridal::with(["plans" => function($query)
$query->orderBy("plans.plan_price");
])
->whereHas('plans')
->groupBy("place_name")
->get();
【讨论】:
以上是关于如果 id 不为 null 则返回,laravel 雄辩的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 模型 - 如果数据库表不存在则返回 null