У меня проблема с Eager Loading, используя приведенный ниже код.Яркая загрузка возвращаемого идентификатора вместо модели
Издание является с моделью состояния
$ticket = Ticket::where('id', $id)->with(['customer', 'status', 'notes' => function($query) {
$query->orderBy('updated_at', 'desc');
}])->first();
Если я,
return response()->json($ticket);
я получаю ожидаемый ответ, все ОК
{"id":1,"customer_id":10001,"ztk_ticket_no":"ZTK0000001","status":{"id":1,"value":"Open","deleted_at":null,"created_at":"2016-02-13 01:36:20","updated_at":"2016-02-13 01:36:20"},"deleted_at":null,"created_at":"2016-02-13 01:36:20","updated_at":"2016-02-13 01:36:20","customer":{"id":1,"customer_id":10001,"title":"Test Company","deleted_at":null,"created_at":"2016-02-13 01:36:20","updated_at":"2016-02-13 01:36:20"},"notes":[{"id":1,"ticket_id":1,"note":"Lorem ipsum dolor sit amet, ","status":1,"deleted_at":null,"created_at":"2016-02-13 01:36:20","updated_at":"2016-02-13 01:36:20"}]}
Но если я
return response()->json($ticket->status);
я получить идентификатор статуса, а не модель
1
Статус модели:
class Status extends Model
{
protected $table = 'statuses';
}
Модель билета:
class Ticket extends Model
{
public function status() {
return $this->hasOne('App\Status', 'id', 'status');
}
}
Попробуйте: $ ticket-> status() -> get(); –
Вы попробовали это? –
О, это работает, спасибо. Любая идея, почему я должен так поступать? – BrendanDodd