我有这样的结构
table events with column id
table users with column id
table topics with columns id, event_id, user_id
我想要的是使用
获取APIevents{
id,
topics{all topics here}, // this part is working
users{users relevant to single topic here} // not sure how to do this
}
我的控制器看起来像这样
class EventsController extends Controller
{
public function index(Request $request)
{
$events = Event::with('topics', 'users')->get();
$response = ['events' => $events];
return response($response, 200);
}...
我的模特是这个
class Event extends Model
{
protected $table = 'events';
//
public function topics()
{
return $this->hasMany(Topic::class, 'event_id');
}
public function users()
{
return $this->hasMany(User::class, 'id');
}
}
但是此函数使模型中的用户仅返回显示了event.id的用户,因此,如果事件id为2,我将仅获得id为2的用户。
我可以以某种方式在Model内编写自定义查询吗?或返回所有相关用户?或只是返回所有用户,但在事件响应之内?