如果 id 不为 null 则返回,laravel 雄辩

Posted

技术标签:

【中文标题】如果 id 不为 null 则返回,laravel 雄辩【英文标题】:return if id not null, laravel elequent 【发布时间】:2020-02-17 04:42:55 【问题描述】:

我已经连接了具有hasManybelongsTo 关系的表。

新娘模特:

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

如何在 Laravel 控制器中使用 null 或 empty?

在PL / SQL过程调用中使用DECODE

具有多个输入的Laravel高级查询

如果没有值或null laravel,则不要更改该值

如果参数为空,则打字稿函数返回类型为空