0

Laravel 5.2 と ACL の Entrust パッケージを使用して 1 つのプロジェクトに取り組んでいます。このプロジェクトでは、会場が所有者である 1 つの役割 (「venue_owner」) が必要です。また、テーブルという名前もあり、テーブルはすべてのタイプのユーザーに一般的でvenueあるため、この関係を作成する方法がわかりません。users

この関係を作成してuser、ロールからvenue_owner何の所有者かを知るにはどうすればよいvenuesですか?

4

1 に答える 1

1

Migrations次を実行してまだ作成しましたphp artisan enthrust:migrationか?そうでない場合は、それを実行してから、生成されたファイル内up()で、Enthrust 移行ファイルのメソッド内に以下のような独自のテーブルを追加します。

<?php

    public function up() {
        // SOME OTHER TABLE CREATION CODES...

        Schema::create('venue_owner', function (Blueprint $table) {
            $table->increments('id');
            $table->integer("user_id")->unsigned();
            $table->timestamps();
            // CREATE THE ASSOCIATION/RELATIONSHIP USING FOREIGN KEY
            $table->foreign('id')
                  ->references('id')
                  ->on('venue')
                  ->onDelete('cascade');
        });

        Schema::create('venues', function (Blueprint $table) {
            $table->increments('id');
            $table->integer("venue_owner_id")->unsigned();
            $table->string("venue");
            $table->timestamps();
            // CREATE THE ASSOCIATION/RELATIONSHIP USING FOREIGN KEY
            $table->foreign('venue_owner_id')
                  ->references('id')
                  ->on('venue_owner');
        });           
    }

    public function down() {
        // OTHER DROP COMMAND CODES...
        Schema::drop('venue_owner');
        Schema::drop('venues');
    }

$this->hasMany()次に、Eloquent Model Class で、次のように明示的に設定できます。

<?php

    namespace App;
    use Illuminate\Database\Eloquent\Model;

    class VenueOwner extends Model {
        /**
         * GET ALL THE venues FOR THE venue_owner .
         */
        public function venues()    {
            return $this->hasMany('App\Venues'); 
        }

        /**
         * GET ALL THE user FOR THE venue_owner .
         */
        public function user()    {
            return $this->hasOne('App\User'); 
        }

VenuesEloquent モデル クラスでは、次のようなことを行います。

<?php

    namespace App;
    use Illuminate\Database\Eloquent\Model;

    class Venues extends Model {
        /**
         * GET THE venue_owner FOR venue(s).
         */
        public function venueOwner()    {
            return $this->belongsTo('App\VenueOwner'); 
        }

最後になりましたが、UsersEloquent モデル クラスでは、次のようなことを行います。

<?php

    namespace App;
    use Illuminate\Database\Eloquent\Model;

    class Users extends Model {
        /**
         * GET THE user Information FOR venue_owner.
         */
        public function venueOwner()    {
            return $this-> hasOne('App\VenueOwner'); 
        }

venue_ownerこれで、と彼のvenuesおよびroles & permissionsを使用して、に関するすべての情報を取得できますuser_id

于 2016-08-15T11:02:01.297 に答える