假设我在几个表中有一些与模型相关的数据,而不是模型所在的表。这些表是动态创建的(自定义EAV实现)。如何使Eloquent将这些表连接到用于获取模型的查询而不构建关系?
如果我可以在完全构造查询之后但在执行查询之前攻击Eloquent将用于从数据库返回模型的查询,那将是件好事。
此外,问题是来自连接表的数据不应该转到模型的属性。
答案 0 :(得分:0)
使用Eloquent
查询数据库时,有一种简单的方法可以动态地在模型中添加其他属性,并且它不会包含在模型的属性中,例如,如果您想要在模型中添加一个字段,该字段在模型的属性属性中不可用,但您希望像属性一样使用它,然后在模型中创建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
字段可用作模型' s {{ 1}}。这称为attribute
方法,并在accessor
网站上查看相关文档(Accessors & Mutators)。