پکیج صفت های بدون طرح (Schemaless Attributes) لاراول

گردآوری و تالیف : عرفان کاکایی
تاریخ انتشار : 19 خرداد 1397
دسته بندی ها : لاراول

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

منبع

مقالات پیشنهادی

بهترین پکیج های لاراولی – سری اول

پکیج ها قابلیت عملیاتی لاراول را افزایش می‌دهند و عملکرد آنرا بهبود می‌بخشند. پکیج ها میتوانند یک راه مناسب برای کار با تاریخ در پروژه باشد مثل پکیج C...

بهترین پکیج های لاراولی - سری دوم

در سری قبل چند پکیج فوق العاده کارآمد برای لاراول معرفی کردیم در این مقاله هم یک سری پکیج شگفت انگیز بهتون پیشنهاد میدیم

ساخت پکیج لاراول 5 - قسمت چهارم

برای قسمت چهارم این سری آموزش ها ما بحث migration و seeding رو در ساخت پکیج ها پوشش خواهیم داد. 

متدهای کمکی لاراول برای URL ها

Jacob Bennett یک نظرسنجی در توئیتر گذاشت تا ببینه جامعه ی توسعه دهندگان از چه روشی برای صدا زدن آدرس های URL در اپلیکیشن لاراولی خود استفاده می کنند