Tuesday, April 4, 2017

Laravel formatting JSON output

Is there a simple way to return more objects with different attribute name in JSON response?

For example I have a User model which has attributes name, password, xy and if I do return User::all(); I will return all users. But what if I want to return a custom object where I will return JSON:

{
    'username' : ...
    'pass': ...
    'xyz' : ...
    'from_related_model' : ...
}

so I will have name of fields returned differently then they are in DB, and also attach to each returned object an attribute from related model.

I don't want to use mutators as I only want to return like that within one controller. I know I can traverse through object with foreach and make a new object by assigning values, and returning merged object. But is there a simpler way to do this?



via Norgul

Advertisement