2013-04-04 4 views
2

Моя «пользовательская» модель с отношением «многие» к модели «изображение».Возвращение нескольких моделей Laravel Eloquent как JSON

Возвращение только пользователю так же просто, как «return Response :: eloquent ($ user);». Я хотел бы либо вернуть массив JSON из {user: {id: ...}, изображения: [{id: ...}, {id: ...}]} или, возможно, лучше, {id: ..., images : [{id: ...}, {id: ...}]}

Каков наилучший способ организовать и отправить эти модели? Должен ли я

ответ

10

Первое, что вам нужно сделать, это убедиться, что ваши модели настроены правильно:

class Users extends Eloquent { 

    public function images() 
    { 
     return $this->hasMany('Image'); 
    } 

} 

class Image extends Eloquent { 

    public function user() 
    { 
     return $this->belongsTo('User'); 
    } 

} 

Тогда в вашем маршруте вы должны быть в состоянии сделать что-то вроде:

Route::any('userinfo/{$userId}', function($userId) 
{ 
    return Response::json(User::with('images')->find($userId)); 

    //or 

    return User::with('images')->find($userId)->toJson(); 
}); 
+2

Это помогло, спасибо. @Eric_WVGG, проверьте ответ, и если он работает на вас, примите его. – Rolice

Смежные вопросы