mehrdad70
4 سال پیش توسط mehrdad70 مطرح شد
4 پاسخ

پکیج spatie laravel permission

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


ثبت پرسش جدید
AriaieBOY
تخصص : TALL Stack Lover
@ariaieboy 4 سال پیش آپدیت شد
0

سلام خدمت شما این جدول یک جدول واسط هست. و شما میتونید بهش 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 4 سال پیش مطرح شد
0

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


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

rezabayat
@mrrezabayat 4 سال پیش مطرح شد
0

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


rezabayat
@mrrezabayat 4 سال پیش مطرح شد
0

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

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

            'engine' => 'InnoDB',

         ...
            ]) : [],

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

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