0

以下のコードを使用した 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);

モデルではなく、ステータスのIDを取得します

1

ステータス モデル:

class Status extends Model
{
    protected $table = 'statuses';
}

チケットモデル:

class Ticket extends Model
{
    public function status() {
        return $this->hasOne('App\Status', 'id', 'status');
    }
}
4

2 に答える 2

1

コードを次のように変更します

$ticket->status()->get();

これにより、オブジェクトが返されます。

 $ticket->status;

これは生の ID のみを返します。

于 2016-02-13T02:18:14.703 に答える