Laravel-在雄辩的联合查询中访问appends属性

时间:2018-11-30 11:38:30

标签: php laravel

我到处搜索,似乎无法获得正确答案。

请考虑以下课程

class A extends Model
{
    protected $appends = ['encoded_name'];

    public function getEncodedNameAttribute()
    {
        return "ABC_ENCODED_NAME";
    }
}

class B extends Model
{

}

现在,这两个类通过一个列相关联。

我有一个将这两个表连接在一起的控制器,但是类B充当我的基表,如下所示:

$query = B::query();
$query = $query->join('a', 'a.id', '=', 'b.a_id');
$query = $query->select('a.*');

通过上面的查询,我可以通过简单地调用

来循环访问我的blade.php页面中的属性。
  

$ a-> example_property;

但是,当我尝试访问appends属性时,使用

  

$ a-> encoded_name;

它似乎无法正常工作。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

因为$ appends仅与Eloquent一起使用,所以当您进行联接时,您的查询不再是雄辩的查询,而是现在的查询生成器。那就是为什么。

Create Proper具有一个或多个关系,并尝试相应地访问您的append属性。应该可以。