Laravel多对多关系用户的转变

时间:2015-10-31 22:04:52

标签: php laravel eloquent many-to-many relationship

我试图让今天的用户转移。用户和Shift模型之间存在多对多的关系,并且使用名为user_shifts的数据透视表。

我的用户模型:

/**
 * Get the users shifts
 */
public function shift()
{
    return $this->belongsToMany('App\Shift', 'user_shifts', 'user_id', 'shift_id');
}

我的班次模型

/**
 * The shift can have many users
 */
public function users()
{
    return $this->belongsToMany('App\User', 'user_shifts', 'shift_id', 'user_id')->withPivot('start_time', 'end_time');;
}

在我的控制器中,我认为我可以做类似的事情:

$shift = Shift::all()->where('date', date('Y-m-d'));

$users = User::all()->where('shift_id', $shift);

return $users;

但是返回null。任何帮助将不胜感激!

如果重要,我的数据库架构是:

Schema::create('shifts', function (Blueprint $table) {
    $table->increments('id');
    $table->date('date');
    $table->boolean('weekend');
});

Schema::create('user_shifts', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('shift_id');
    $table->integer('user_id');
    $table->time('start_time');
    $table->time('end_time');
});

Schema::create('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('fname');
    $table->string('lname');
    $table->string('email')->unique();
    $table->string('password', 60);
    $table->rememberToken();
    $table->timestamps();
});

0 个答案:

没有答案