دوستانی که با پکیج لاراول پرمیژن کار کردن یه سوال داشتم
میخوام قسمت model_has_permissions اش رو عوض کنم یعنی میخوام یک column بهش اضافه کنم ولی تو داکیومنتش در این باره چیزی پیدا نکردم
میخوام یک پارامتر به پارامتر های موجود اضافه کنم راه حلی سراغ دارید بگید ممنون میشم؟
سلام خدمت شما این جدول یک جدول واسط هست. و شما میتونید بهش 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 هم میتونید همین کار ها رو بکنید فقط باید ریلیشن و مایگریشنی که مینویسید مال پرمیشن باشه که توی مثال من برای رول بود
شاید پاسخ شما همینجا باشد
سلام خدمات همه دوستان
چرا با وجود اضافه کردن Schema::defaultStringLength(191); در AppServiceProvider همچنان در هنگام migrate کردن به مشکل فوق برخورد میکنم. ممنون
مشکل رو پیدا کردم!
دنبال engine در فایل config/database.php بگردید اگر null بود برابر مقدار InnoDB قرار دهید.
'mysql' => [
'driver' => 'mysql',
...
'engine' => 'InnoDB',
...
]) : [],