پیاده سازی سیستم کامنت در اکثر اپلیکیشن ها، جز بخش های لازم است.. حتی در بعضی موارد نیاز داریم برای چند بخش مختلف (محصولات، مقالات، اخبار و ...) کامنت ها رو تعبیه کنیم..
به کمک پکیج Laravel Commentable میتوانیم این قابلیت را در مدل های مختلف اپلیکیشن لاراولی مهیا کنیم.. تنها کافیست از Trait پکیج در داخل مدل های الکوئنت استفاده کرد.
این پکیج با بهره گیری از روابط چند ریختی (Polymorphism) این امکان را به ما میدهد که: برای هر مدلی را که خواستیم کامنت ثبت کنیم. به عبارت دیگر در یک اپلیکیشن لاراولی میتوانیم برای پستها، محصولات، ویدیوها و هر تعداد مدل دیگر که نیاز داریم، کامنت ثبت کنیم. در این نوشته به شرح موارد زیر میپردازیم:
برای نصب پکیج از طریق کامپوزر:
سپس مایگریشن و فایل کانفیگ را پابلیش کرده و مایگریشن رو اجرا کنید:
برای آماده سازی مدل، فقط باید از تِرِیت پکیج داخل مدل مورد نظر استفاده کنید:
حالا میتوانید به راحتی با متد های پکیج کار کنید..
برای نمایش دادن متدها، ابتدا چند متغیر را مقداردهی میکنیم:
حال که متغیرها مقدار دهی شده اند... برای:
به صورت پیش فرض کامنت ها در سیستم به شکل غیر فعال ثبت میشوند، مگر اینکه مقدار فیلد active برابر با true باشد
روابط بین مدل ها برای Eagerloading به شرح زیر میباشند:
همچنین متدهای در دسترس از طریق پکیج Nestedset به شرح زیر میباشند:
متد هایی که از پکیج Nestedset بررسی کردیم، تمام کارآیی های این پکیج نیست و برای مستندات کامل آن میتوانید به ریپازیتوری گیتهاب این پکیج مراجعه کنید.
این پکیج به گونه ای طراحی شده تا بتونه با مدلهای الکوئنت در تعامل باشه و هر جا که به کامنت نیاز بود براحتی قابل پیادهسازیه. سورس این پروژه روی گیتهاب موجود هست.
https://github.com/AliBayat/Laravel-Commentable