【发布时间】:2018-09-20 16:36:04
【问题描述】:
我正在尝试根据当前查询的 ID 从另一个表中获取列的值,并将其应用于我的所有结果。
这些是我的关系:
模型“属性选项”
public function attributes()
{
return $this->hasMany('App\Attribute');
}
模型“属性”
public function attributeOptions()
{
return $this->belongsTo('App\AttributeOption');
}
我的结果集是一个数组
$attributeResults = Attribute::whereIn('group_id', $attributes)->get()->toArray();
这是我的查询结果示例 -
0 => array:7 [▼
"id" => 13
"group_id" => 11
"label" => "Food item"
"type" => 1
"value" => null
"created_at" => "2018-04-08 20:49:26"
"updated_at" => "2018-04-08 20:49:26"
]
使用type 列,我想使用该值查找关系。我尝试运行测试dd($attributeResults[0]->option)
我可以对 Eloquent 查询做些什么来获取查询期间的关系值吗?我不明白当关系不再是对象(在本例中为数组)时,如何进行关系查找。
更新数据库表
结果type = 1 在哪里我想在attribute_options 表上查找并找到在这种情况下匹配的 id 'text'。
属性选项表
id : 1
option : text
属性表
id : 13
group_id : 11
label : food item
type : 1
value : null
【问题讨论】:
-
type是什么关系? -
请澄清您的问题。查询后你到底想要什么?
-
还有更新表
-
更新了表格和示例数据
-
“我可以对我的 Eloquent 查询做些什么来获取查询期间的关系值吗?”您是否尝试在查询中使用
with->('attributeOptions')?关于第二部分,我猜你可以使用 whereHas。更多信息laravel.com/docs/5.6/…
标签: php laravel laravel-5 eloquent