امروز قصد دارم تا یک پکیج مفید و کاربردی در رابطه با الکوینت ها (Eloquent) در لاراول را به شما دوستان عزیز معرفی کنم پس در ادامه با معرفی این پکیج همراه ما باشید.
خب اسم پکیجی که امروز قصد دارم به شما دوستان عزیز معرفی کنم Eloquent HasManyDeep است که امکانات رو در کا با الکوینت ها در اختیار ما قرار میده و میتونه بسیار مفید باشه. قبل هر چیز باید به این نکته اشاره کنم که این پکیج در اصل نسخه گسترش یافته ی پکیجی با نام Laravel Eloquent’s HasManyThrough است که امکان ارتباط با مدلهای نامحدود واسط (intermediate) رو فراهم میکنه. که تمام اینها شامل پشتیبانی از روابط many-to-many و روابط پلی مورفیک (polymorphic) یا بعبارتی چندشکلی هم میشه.
برای درک دلیل مفید بودن این پکیج بزارید یک نمونه مثال رو با هم بررسی کنیم. فرض بگیرید که شما یک سری تنظیمات دارید که می خواهید همه نظرات را برای همه ی پست ها ،که توسط کاربران یک کشور خاص ارسال شده اند را دریافت کنید. کدی که برای این کار استفاده می کنید ممکن است چیزی شبیه کد زیر باشد:
Country → hasMany → User → hasMany → Post → hasMany → Comment
همانطور که در کد بالا مشاهده می کنید منطق کد بالا ممکن است بسیار پیچیده شود و باعث افزایش پیچیدگی کد شما بشود. اما اگر شما از این پکیج استفاده کنید می توانید برای این گونه حالات از کد مثل کد زیر استفاده کنید که هم ساده به نسب ساده تر و هم قابل درک تر است. برای درک بهتر کد زیر را بررسی کنید:
class Country extends Model
{
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
public function comments()
{
return $this->hasManyDeep('App\Comment', ['App\User', 'App\Post']);
}
}
هنگامی که شما دز مدل خود از این پکیج استفاده کنید (به شکل بالا) بدست آوردن نظرات کاربران یک کشور خاص کاری بسیار ساده تر خواهد شد و کد شما کدی خیلی شبیه تر (familiar) به کدهای لاراول خواهد شد در نهایت به این منظور کافیست تا تنها کد زیر را اجرا کنید:
Country::first()->comments
سازنده این پکیج برای راهنمای بیشتر در رابطه با چگونگی استفاده از آن یک ویدیو را آماده کرده است که در زیر لینک یوتیوب آن را برای شما قرار داده ایم که در آینده ی نزدیک این ویدیو را به فارسی ترجمه خواهیم کرد و برای استفاده شما دوستان در سایت قرار خواهیم داد.
مشاهده فیلم راهنمای استفاده از پکیج Eloquent HasManyDeep
برای نصب این بسته کافیست کد زیر را در ترمینال خود اجرا کنید:
composer require staudenmeir/eloquent-has-many-deep
البته شما می توانید نسخه مربوط به لاراول خود را نیز نصب کنید. که برای مثال نسخه 1.7 برای لاراول 5.5 تا 5.7 و نسخه 1.8 برای لاراول 5.8 و نسخه 1.11 برای لاراول 6.x ارائه شده است:
composer require staudenmeir/eloquent-has-many-deep:"^1.11"
شما در تصویر زیر می توانید توضیحات مربوط به آخرین نسخه ،تعداد نصب ،لایسنس و... در گیت هاب این پروژه (تاز زمان تنظیم این مطلب) را مشاهده کنید:
در نهایت اگر شما به اطلاعت بیشتری در رابطه با این پکیج کاربردی ،راهنمای نصب ،راهنمای استفاده آن و.. دارید و یا می خواهید سورس کد آن را دانلود کنید می توانید به آدرس گیت هاب آن که در زیر برای شما دوستان قرار داده ایم مراجعه کنید:
آدرس گیت هاب پکیج Eloquent HasManyDeep
نظر شما چیست؟ شما می توانید نظرات ،پیشنهادات و اطلاعات خود را در رابطه با این مطلب و موضوعات مربوط از طریق قسمت نظرات با ما و سایر بازدیدکنندگان در میان بگذارید.