با پکیج صفت های بدون طرح لاراول ساخته شده توسط Spatie، می توانید به مدل های Eloquent relational صفات بدون طرح اضافه کنید. معرفی نامه موجود در خود پکیج به خوبی آن را جمع بندی می کند:
«خوب نمیشد اگر کمی از ویژگی های NoSQL را در Eloquent داشتید؟ کار این پکیج، دقیقا همین است. این پکیج صفاتی را فراهم می کند که وقتی برو روی یک مدل اعمال می شوند، شما را قادر می سازند تا مقادیر دلخواهی را در یک ستون JSON وارد کنید.»
از آنجایی که این پکیج نیازمند دیتابیسی با پشتیبانی ستون های JSON است، باید از دیتابیسی مانند MySQL 5.7 یا بالاتر استفاده کنید.
روش اعمال صفات بدون طرح، همان روشی است که صفات معمولی را اعمال می کنید:
$yourModel->extra_attributes->name = 'value';
$yourModel->extra_attributes->name; // Returns 'value'
برای ذخیره صفات بدون طرح، خود مدل را ذخیره کنید:
// Persists both normal and schemaless attributes
$yourModel->save();
سوالی که در هنگام بررسی این پکیج برای من پیش آمد، این بود که چگونه باید صفات اضافی مدل را Query بندی کنیم؟
$yourModel->withExtraAttributes([
'name' => 'value',
'name2' => 'value2
])->get();
برای شروع کار با این پکیج، با استفاده از Composer آن را نصب کنید:
composer require spatie/laravel-schemaless-attributes
سپس، باید کد زیر را به یک Model Migration که می خواهید صفات JSON را به آن اعمال کنید، اضافه کنید:
Schema::table('your_models', function (Blueprint $table) {
$table->schemalessAttributes('extra_attributes');
});
این پکیج راه خوبی برای اضافه کردن و دسترسی به داده های داخل یک دیتابیس Relational، با متود خوبی در زمینه داده های JSON فراهم می کند. برای دیدن سورس کد، صفحه گیت هاب این پکیج را مشاهده کنید.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید