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

同一张桌子上的多个关系

南宫正阳
2023-03-14

在我的属性模型中,我定义了这两个关系

public function images() {
    return $this->hasMany('Image')
        ->where('approved', '=', 1);
}
public function pending_images() {
    return $this->hasMany('Image')
        ->where('approved', '=', 0);
}

在我的控制器中,我创建一个属性对象,并尝试获取已批准和挂起的图像。

$images = $property->images;
$pending = $property->pending_images;

var_dump($images);
var_dump($pending);
exit;

$images变量是预期的illighte\Database\elount\Collection

然而,$pending只是NULL

我尝试使用这个答案获取最后一个数据库查询,似乎挂起的查询甚至没有被执行。(最后一次查询运行已批准=1,这是针对图像关系。)

我怀疑这种关系可能是一个问题,但我被难住了。

共有1个答案

吴开宇
2023-03-14

您需要将该关系重命名为camelCase:

public function pendingImages() {
   return $this->hasMany('Image')
     ->where('approved', '=', 0);
}

然后,它将按预期工作,而且您可以通过以下任一方式访问它:

$property->pending_images == $property->pendingImages;

仅此而已,动态属性仅适用于camelCased方法。

 类似资料:
  • 问题内容: 这是情况:- 我有一个名为“用户”的表。由于所需的大多数数据是相同的,因此它包含学生和导师的用户数据。 完成该系统后,现在我被告知客户希望能够将学生分配给导师。 是否可以通过链接表在一个表内创建一对多关系的合法/干净方法? 我已经尝试过考虑这一点,但是我想出的任何解决方案似乎都是混乱的。 我将不胜感激。 谢谢 菲尔 问题答案: 您是否尝试过以下方法? 例如,创建一个新表(如果需要,请选

  • 问题内容: 我有两个具有相同列的表,我需要将一个表的行复制到另一表的行,以创建一个包含两个表中所有值的大表。现在,我正在执行此查询以返回相同的内容: 但是,这似乎效率极低,并且在我的系统上非常慢(返回1210189条记录)。 问题答案: 可能只是这样做:

  • 问题内容: 我有这个数据库存储传感器采集数据, 采集(acq)来自不同控制单元(cu)的固定间隔(日期时间) 每个采集在数据表中存储了许多不同的度量 我需要这种观点: 作为: v1是data.value(例如湿度),其中 acq.id_cu = 1 AND data.id_meas = 100 v2是data.value(例如计数器),其中 acq.id_cu = 2 AND data.id_me

  • 问题内容: 我有两张桌子和。 第一台具有与第二表有田,, 我想要一个帐户进行多少次子请求以及他进行了多少次抓取的计数(基于,如果该帐户中填充了他的) 在一个查询中 输出: 问题答案: 使用类似 诀窍是使用表两次:和,每次由不同的字段联接。 关于效率的注意事项:我不确定,但是我相信这个解决方案比子查询解决方案要快,尽管没有对其进行测试(至少不会慢一些)。只要有可能,我总是更喜欢子查询。

  • 问题内容: 我正在尝试检索两组信息(一个查询中该图的红色和蓝色部分)。 我以为我可以使用下面所述的sql来做到这一点,但是当TableC没有记录时,它什么也不会返回。如果TableC没有记录,我仍然希望该查询向我返回BLUE区域指示的结果。 从表A中选择A. * 加入TableB B ON(A.id = B.a_id) 联接表C C ON(A.id = C.a_id) 感谢任何指针,以向我返回红色

  • 本文向大家介绍甲有一些桌子,乙有一些椅子,如果乙用全部的椅子来换回同样数量的桌子,那么要补给甲320元,如果不补钱,就会少换回5张桌子,已知3张椅子比桌子的价钱少48元。求一张桌子和一把椅子一共用多少钱?相关面试题,主要包含被问及甲有一些桌子,乙有一些椅子,如果乙用全部的椅子来换回同样数量的桌子,那么要补给甲320元,如果不补钱,就会少换回5张桌子,已知3张椅子比桌子的价钱少48元。求一张桌子和一