是否可以直接向模型返回hasOne关系的值?
例如:
$List = Element::orderBy('title')->get();
元素有一个" hasOne"与列的关系:
public function type()
{
return $this->hasOne('App\Type', 'id', 'type_id');
}
我现在如何自动返回"类型"对于模型?
在片刻,我正在遍历所有元素,并构建我自己的"数组"对象,包括键#"类型"在这个例子中。但我不愿意只在我的模型中这样做。
我知道如何添加"正常"财产,但它可以是某种关系中的某个人吗?
public function getTypeAttribute($value)
{
return // how ?
}
protected $appends = array('type');
这可能吗?
编辑:
解决方法可能是使用DB ::来返回正确的值 - 但是不好的事情是一个好的解决方法:例如:
public function getTypeAttribute($value)
{
// make a query with $this->type_id and return the value of the type_name
}
protected $appends = array('type');
答案 0 :(得分:2)
获取元素时需要急切加载关系:
$list = Element::with('type')->orderBy('title')->get();
然后使用
访问type
foreach ($list as $item) {
echo $item->type->type_name;
}
其中type_name
是types
表
答案 1 :(得分:0)
创建查询范围并在该范围内,从其他表中加入属性。