假设,我在几个表中有一些与模型相关的数据,而不是模型驻留在其中。这些表是动态创建的(自定义EAV实现(。我如何让Eloquent在不建立关系的情况下,在用于获取模型的查询中加入这些表?
如果我能破解一个查询,Eloquent将在查询完全构建后,但在执行之前,使用该查询从数据库返回模型,那就太好了。
另外,问题是来自联接表的数据不应该进入模型的属性。
当使用Eloquent
查询数据库时,有一种简单的方法可以在模型中动态添加附加属性,并且它不会包含在模型的属性中。例如,如果您想在模型中添加一个字段,该字段在模型的attributes属性中不可用,但您想将其用作属性,然后在模型中创建一个accessor
方法,如下所示:
// In User model for example
public function getFullNameAttribute()
{
return $this->first_name . ' ' . $this->last_name;
}
现在,如果你使用这样的东西:
echo User::find(1)->fullName;
然后,您将得到一个完整的名称字符串(连接的first_name
和last_name
(,但实际上没有可用的fullName
字段作为模型的attribute
。这被称为accessor
方法,请查看Laravel
网站上的文档。