راکت

پکیج spatie laravel permission

4 پاسخ

دوستانی که با پکیج لاراول پرمیژن کار کردن یه سوال داشتم
میخوام قسمت model_has_permissions اش رو عوض کنم یعنی میخوام یک column بهش اضافه کنم ولی تو داکیومنتش در این باره چیزی پیدا نکردم
میخوام یک پارامتر به پارامتر های موجود اضافه کنم راه حلی سراغ دارید بگید ممنون میشم؟

ثبت پرسش جدید

پاسخ‌ها

4
AriaieBOY
AriaieBOY
@ariaieboy

تخصص: TALL Stack Lover

سلام خدمت شما این جدول یک جدول واسط هست. و شما میتونید بهش column جدید اضافه کنید. و مشکلی نداره.
به عنوان مثال این یک column من خودم برای پروژه خودم استفاده کردم:

        Schema::table('model_has_roles', function (Blueprint $table) {
            $table->timestamp('expire_at')->nullable();
        });

کد بالا کد مایگریشنش هست. حالا برای دسترسی به این مقدار باید از تابع pivot استفاده کنید.
یا هم من داخل مثلا مدل user اومدم و ریلیشن roles تغییر دادم به این صورت :

    /**
     * A model may have multiple roles.
     */
    public function roles(): MorphToMany
    {
        return $this->morphToMany(
            config('permission.models.role'),
            'model',
            config('permission.table_names.model_has_roles'),
            config('permission.column_names.model_morph_key'),
            'role_id'
        )->withPivot('expire_at');
    }

اینجوری این پیوت هم داخل ریلیشن میاد

برای جدول model_has_permission هم میتونید همین کار ها رو بکنید فقط باید ریلیشن و مایگریشنی که مینویسید مال پرمیشن باشه که توی مثال من برای رول بود

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

وقتی به pivot table ها column اضافه کنی.. باید توی رابطه بهش اشاره کنی:


    return $this->belongsToMany('App\Model')
        ->withPivot('column');

شاید پاسخ شما همین‌جا باشد

rezabayat
rezabayat
@mrrezabayat

سلام خدمات همه دوستان
توضیح تصویر رو وارد کنید چرا با وجود اضافه کردن Schema::defaultStringLength(191); در AppServiceProvider همچنان در هنگام migrate کردن به مشکل فوق برخورد میکنم. ممنون

rezabayat
rezabayat
@mrrezabayat

مشکل رو پیدا کردم!
دنبال engine در فایل config/database.php بگردید اگر null بود برابر مقدار InnoDB قرار دهید.

'mysql' => [
            'driver' => 'mysql',
        ...

            'engine' => 'InnoDB',

         ...
            ]) : [],

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام