How to alias the name of a column in Eloquent

前端 未结 3 485
夕颜
夕颜 2020-12-01 04:32

I have an eloquent model named Eloquent:

Products::where(\"actice\", \"=\", true)->get()->toArray();

Now I want to add join-statement

相关标签:
3条回答
  • 2020-12-01 04:54

    Simplest way to do this would be to add the fields you need to the get() method and alias the ones you want to rename there.

    Products::where("actice", "=", true)
        ->joinWithTags
        ->get(['tags.name AS tag_name', 'products.*'])
        ->toArray();
    
    0 讨论(0)
  • 2020-12-01 05:00

    There is also a cleaner way to achieve this

    You can take advantage of laravel mutators

    public function getTagNameAttribute()
    {
        return $this->attributes['name'];
    }
    

    Hope this helps

    0 讨论(0)
  • 2020-12-01 05:09

    On Laravel 5.4 (I don't know if earlier version also apply) you can do that with the select method:

    Products::where("actice", "=", true)
        ->joinWithTags
        ->select('tags.name AS tag_name', 'products.*')
        ->get();
    

    At least for me this is cleaner.

    0 讨论(0)
提交回复
热议问题