個人用戶和角色模型以下所示:php
class Role extends Model { public function users() { $this->belongsToMany('\App\User', 'fk_role_user', 'role_id', 'user_id'); } }
class User extends Model { public function roles() { $this->belongsToMany('\App\Role', 'fk_user_role', 'user_id', 'role_id'); } }
個人遷移表中二者之間的多對多關係以下所示:html
public function up() { Schema::create('role_user', function (Blueprint $table) { $table->increments('id'); $table->integer('user_id')->unsigned()->nullable(); //fk => users $table->integer('role_id')->unsigned()->nullable(); //fk => roles $table->foreign('fk_user_role')->references('id')->on('users')->onDelete('cascade'); $table->foreign('fk_role_user')->references('id')->on('roles')->onDelete('cascade'); }); }
而後我嘗試在控制器中獲取他們關係的全部記錄:函數
public function index() { $users = User::with('roles')->get(); return $users; }
因此我須要另外一雙眼睛告訴我這裏我缺乏什麼?this
更換spa
public function roles() { $this->belongsToMany('\App\Role', 'fk_user_role', 'user_id', 'role_id'); }
同code
public function roles() { return $this->belongsToMany('\App\Role', 'role_user', 'user_id', 'role_id'); }