如何在laravel中获取ajax请求的嵌套关系记录?

如何在laravel中获取ajax请求的嵌套关系记录?,ajax,laravel,laravel-5,eloquent,Ajax,Laravel,Laravel 5,Eloquent,我有一张模型票,上面有用户解释问题 Ticket.php class Ticket extends Model { protected $table = 'tickets'; /** * @var array */ protected $guarded = []; /** * @var array */ protected $hidden = [ 'created_at', 'updated_at'

我有一张模型票,上面有用户解释问题

Ticket.php

class Ticket extends Model
{
    protected $table = 'tickets';
    /**
     * @var array
     */
    protected $guarded = [];

    /**
     * @var array
     */
    protected $hidden = [
        'created_at', 'updated_at'
    ];


    public function ticket_replies()
    {
        return $this->hasMany(TicketReply::class, 'ticket_id');
    }

    public function ticket_assigned_agents()
    {
        return $this->hasMany(TicketAssignedAgent::class, 'ticket_id');
    }
}

class TicketReply extends Model
{
    protected $table = 'ticket_replies';
    /**
     * @var array
     */
    protected $guarded = [];

    /**
     * @var array
     */
    protected $hidden = [
        'created_at', 'updated_at'
    ];

    public function staffs(){
        return $this->belongsTo(Staff::class,'user_id');
    }
    public function ticket()
    {
        return $this->belongsTo(Ticket::class, 'ticket_id');
    }
}
还有另外一种模式 TicketReply.php

class Ticket extends Model
{
    protected $table = 'tickets';
    /**
     * @var array
     */
    protected $guarded = [];

    /**
     * @var array
     */
    protected $hidden = [
        'created_at', 'updated_at'
    ];


    public function ticket_replies()
    {
        return $this->hasMany(TicketReply::class, 'ticket_id');
    }

    public function ticket_assigned_agents()
    {
        return $this->hasMany(TicketAssignedAgent::class, 'ticket_id');
    }
}

class TicketReply extends Model
{
    protected $table = 'ticket_replies';
    /**
     * @var array
     */
    protected $guarded = [];

    /**
     * @var array
     */
    protected $hidden = [
        'created_at', 'updated_at'
    ];

    public function staffs(){
        return $this->belongsTo(Staff::class,'user_id');
    }
    public function ticket()
    {
        return $this->belongsTo(Ticket::class, 'ticket_id');
    }
}
现在我想从机票回复中得到员工姓名

查询

public function getReplies($ticket_id)
    {
        $ticket =  Ticket::where('id',$ticket_id)->with('ticket_replies')->first();
        return response()->json($ticket);
    }
我想从ajax成功中的TicketReply模型中获取员工姓名

$.each(ticket.ticket_replies, function(index, reply) {
    console.log(reply.staffs.name);
}
$.each(ticket.ticket_replies, function(index, reply) {
    console.log(reply.staffs.name);
}

但它不起作用。对此我能做些什么?

急切地加载嵌套关系

public function getReplies($ticket_id)
{
    $ticket =  Ticket::where('id',$ticket_id)->with(['ticket_replies','ticket_replies.staffs'])->first();
    return response()->json($ticket);
}
然后做你正在做的事情


立即加载嵌套关系

public function getReplies($ticket_id)
{
    $ticket =  Ticket::where('id',$ticket_id)->with(['ticket_replies','ticket_replies.staffs'])->first();
    return response()->json($ticket);
}
然后做你正在做的事情