【问题标题】:Laravel 5.5 Many-to-Many relationship with a One-to-Many relationshipLaravel 5.5 多对多关系与一对多关系
【发布时间】:2018-03-16 09:20:53
【问题描述】:

我正在处理一个帐户只能有一个主要用户但有多个普通用户的项目。我正在尝试确定如何区分用户。这是我目前的设置:

用户模型关系

public function accounts()
{
    return $this->belongsToMany('App\Models\Account', 'account_user');
}

帐户模型关系

主帐户用户(一对多)

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

普通帐户用户(多对多)

public function users()
{
    return $this->belongsToMany('App\Models\User', 'account_user');
}

在将要显示这些用户的页面中,我不确定如何拆分用户(主要用户与普通用户)。下面是我对表格的迁移。

用户表

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

帐户表

Schema::create('accounts', function (Blueprint $table) {
    $table->increments('id');
    $table->string('account_number');
    $table->integer('user_id')->unsigned()->index();
    $table->timestamps();

    $table->foreign('user_id')
        ->references('id')
        ->on('users')
        ->onDelete('cascade');
});

帐户用户(数据透视表)

Schema::create('account_user', function (Blueprint $table) {

    $table->integer('user_id')->unsigned();
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

    $table->integer('account_id')->unsigned();
    $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade');

});

我真的不明白 1.如何区分两个主要用户和普通用户。 2. 在哪里创建上面的函数(模型,视图中,服务,...)。

感谢您的帮助,如果您需要更多信息,请告诉我。

【问题讨论】:

    标签: php mysql laravel migration


    【解决方案1】:

    我不完全确定您的问题,但我会尝试回答。我也希望现在还不晚 可以通过以下方式获取帐户的主要用户:

    Account::find($account)->user; //primary user
    

    普通用户可以通过做得到

    Account::find($account)->users; //regular users
    

    $account 是您要查找的帐户的 ID,它是主要用户和普通用户

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 1970-01-01
      • 2018-06-15
      • 1970-01-01
      • 2017-12-24
      • 2017-06-21
      • 1970-01-01
      • 2018-09-27
      • 2018-04-20
      相关资源
      最近更新 更多