我有一个可退回所有票证的控制器。有一个字段user_id
,它是User
模型的外键。当我请求api时,我不仅要获取user_id还要获取名称。
public function index() : TicketsResourceCollection
{
$tickets = Ticket::all();
return new TicketsResourceCollection($tickets);
}
机票迁移:
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
答案 0 :(得分:0)
在您的机票模型中:
public function user()
{
return $this->hasMany('App\Ticket');
}
在您的用户模型中:
public function tickets()
{
return $this->belongsTo('App\User');
}
通过这种方式,您可以与用户获得门票:
$tickets = Ticket::all()->with('users');
或者您可以获取特定用户的所有票证:
$user = User::find(1);
$tickets = $user->tickets;
答案 1 :(得分:0)
如果您不必定义关系:
$tickets = Ticket::join('users', 'users.id', '=', 'ticket.user_id')->where('ticket.user_id', 1)->select('ticket.*', 'users.*')->get();
但是我建议使用laravel关系是好东西。