Laravel表关系问题

时间:2017-04-21 14:48:18

标签: php laravel

我是Laravel的新手,我通过数据透视表role_user有两个表用户和角色,但我删除了数据透视表并将外键id_role放在表user中,但我还需要更改此代码,但我发现了一些问题。

@if(!empty($user->roles))
    @foreach($user->roles as $v)
        <label class="label label-success">{{ $v->display_name }}</label>
    @endforeach
@endif

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

用户模型:

class User extends Model {

  public function roles()
  {
    return $this->hasMany(Roles::class);
  }

角色迁移文件:

public function up()
{
  Schema::create('roles', function(Blueprint $table)
  {
    $table->increments('id');
    $table->integer('user_id')->unsigned();
    $table->foreign('user_id')
      ->references('id')->on('todolists')
      ->onDelete('cascade');
    $table->string('name');
    $table->timestamps();
  });
}

角色模型:

class Role extends Model {

  public function user()
  {
    return $this->belongsTo(User::class);
  }

}

现在你可以这样做:

@if(!empty($user->roles))
    @foreach($user->roles as $v)
        <label class="label label-success">{{ $v->display_name }}</label>
    @endforeach
@endif