当前位置: 首页 > 知识库问答 >
问题:

如果id不为null,则返回laravel elequent

昝唯
2023-03-14

我已经连接表与一个has很多

新娘模型:

public function plans()
{
    return $this->hasMany("App\Plan");
}

计划模型:

public function bridal()
{
    return $this->belongsTo("App\Bridal");
}

我有一个查询将这些数据返回到endpoint。

public function bridal()
{

    $bridals = Bridal::with(["plans" => function($query){
        $query->orderBy("plans.plan_price");
    }])
    ->groupBy("place_name")
    ->get();


    return $bridals;

}

一切都很好,除了一件事。在婚宴桌上,一些身份证上没有计划。因此,当我返回数据时,一些bridal id带有一个空的Plans数组。

我想阻止这种情况。如果新娘id没有计划,那么我不想返回该新娘id。在这里我如何才能实现我想要的?

共有2个答案

江凯风
2023-03-14

在您的查询中添加whyhave():这样您将获得具有计划的新娘记录

$bridals = Bridal::with(["plans" => function($query){
       $query->orderBy("plans.plan_price");
   }])
   ->whereHas('plans')
   ->groupBy("place_name")
   ->get();
夏建弼
2023-03-14

你可以用Has。如果您只使用has('relation'),这意味着您只想获得在该关系中至少有一个相关模型的模型

$bridals = Bridal::with(["plans" => function($query){
        $query->orderBy("plans.plan_price");
    }])->has('plans')
    ->groupBy("place_name")
    ->get();

查看更多信息以便回答

 类似资料:
  • 问题内容: 我在node.js中编写一个函数来查询PostgreSQL表。 如果该行存在,我想从该行返回id列。 如果不存在,我想将其插入并返回ID()。 我一直在尝试和语句的变体,但似乎无法使其正常工作。 问题答案: 我建议在数据库端进行检查,然后将ID返回给nodejs。 例子: 而不是在Node.js端(在此示例中,我使用的是node-postgres):

  • 问题内容: 是否可以将此代码转换为Java 8可选单行表达式? 即如果某个对象不为空,我需要调用一个对象方法并返回其结果,否则返回0。 不适合,因为它返回相同类型的对象,但是我需要方法调用的结果或一些默认值。 问题答案: 几种形式: 其中,最后一个不使用Optional(因此不能严格回答您的问题!)更易于阅读,运行时开销也较小,因此应优先使用。 可以说,如果您反转选项,它甚至更简单: …尽管您可能

  • 是否可以将此代码转换为Java8可选的单行表达式? i、 如果某个对象不是null,我需要调用一个对象方法并返回其结果,否则返回0<代码>可选。不可数()。orElse()不适合,因为它返回相同类型的对象,但我需要方法调用的结果或一些默认值。

  • 问题内容: 在MySQL中,是否可以将“总计”字段设置为零(如果它们为NULL)? 这是我所拥有的: 数据输出正常,但NULL字段应为。 如何在MySQL中为NULL返回0? 问题答案: 使用IFNULL: 从文档中: 如果expr1不为NULL,则IFNULL()返回expr1; 否则返回expr2。IFNULL()返回数字或字符串值,具体取决于使用它的上下文。

  • 将从非null元素返回最小值。 我想编写一个查询,将NULL视为可能的最小值。 我见过使用特殊值的日期技巧,如下所示:https://stackoverflow.com/a/32240382/7810882 但是,如果列的类型是并且没有可以映射到的特殊值怎么办?

  • 我有一个简单的Java程序: 而这个简单的: 当我使用gradle执行它时——没有守护进程运行,我得到以下输出: 如果我通过从终端执行它,我得到以下: 我知道系统。当父进程使用stdout重定向时,console()可能返回null。是否有一些Gradle选项来禁用重定向并使控制台完全可用于我的程序? 我正在为Java开发一个终端库,所以我想在stdin/stdout/stderr中没有Gradl