我有以下表格:
我将已分配的用户插入到事件中,表结构是这样的:
Schema::create('user_events', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id')->unsigned();
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade')->onDelete('cascade');
$table->integer('event_id')->unsigned();
$table->foreign('event_id')->references('id')->on('events')->onUpdate('cascade')->onDelete('cascade');
$table->timestamps();
});
我想用auth用户为他的活动创建一个页面。
要获得Id,我在模型用户中使用以下关系:
public function userEvents() {
return $this->hasMany('App\Models\UserEvent');
}
Trought controller我得到了一个事件ID列表。
我之前的消息来源是: Laravel relation between 3 models
Laravel 5 relation between 3 tables
Laravel Eloquent Relation between 3 table
我的问题是,如何处理此事件ID的事件名称?
答案 0 :(得分:1)
答案 1 :(得分:0)
通过查看您的架构,关系应该是many-to-many
而不是one-to-many
。
所以你在User
模型中的关系看起来像是:
public function events()
{
return $this->belongsToMany('App\Models\Event');
}
然后在您的控制器中,通过以下方式获取经过身份验证的用户的所有事件:
$events = auth()->user()->events; // returns collection of Event model