I have an eloquent model named Eloquent:
Products::where("actice", "=", true)->get()->toArray();
Now I want to add join-statement to it, I have defined a scopeQuery with:
public function scopeJoinWithTags($query) { return $query->leftJoin("tags", "tags.id", "=", "products.tag_id"); }
Then our main query changes to:
Products::where("actice", "=", true)->joinWithTags->get()->toArray();
What I get is OK, it is what I do expect, but I want to change the name property of tags table to tag_name, how should I do that? I mean, i say somewhere in my query to:
tags.name AS tag_name
So that in the final result array I do :
$result[$i]['tag_name'];
While now I have to :
$result[$i]['name'];
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();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With