TGViewer
| کانال توسعه‌دهندگان لاراول | | کانال توسعه‌دهندگان لاراول | @developixlaravel · 1.54K subscribers
Post #78 911
فصل چهار - مدل‌ها و Eloquent ORM

بخش اول - معرفی Eloquent


الوکوئنت (Eloquent) یکی از بخش‌های مهم و قدرتمند فریمورک لاراول است که به عنوان ORM (Object-Relational Mapping) عمل می‌کند. ORM یک تکنیک برنامه‌نویسی است که به توسعه‌دهندگان اجازه می‌دهد تا با پایگاه داده به صورت شیء‌گرا کار کنند و جداول پایگاه داده را به کلاس‌های PHP تبدیل کنند.

کارکرد اصلی الوکوئنت:
الکوئنت به شما امکان می‌دهد تا با استفاده از مدل‌های شیء‌گرا (Objects)، داده‌های پایگاه داده را دستکاری کنید. این به شما اجازه می‌دهد که به جای نوشتن کوئری‌های SQL خام، از متدهای شیء‌گرای الوکوئنت استفاده کنید که کد را تمیزتر و قابل‌فهم‌تر می‌کند.

ویژگی‌ها و قابلیت‌های الوکوئنت:
1- تعریف مدل‌ها: در الوکوئنت، هر جدول پایگاه داده با یک مدل مطابقت دارد. این مدل‌ها کلاس‌هایی هستند که رفتارها و ویژگی‌های مرتبط با جداول پایگاه داده را مشخص می‌کنند. همچنین یکی از سه بخش معماری MVC را تشکیل می دهند.

2- روابط: الوکوئنت به شما امکان می‌دهد تا روابط بین جداول را به راحتی تعریف کنید. برای مثال:

ارتباط یک به یک (One to One).
ارتباط یک به چند (One to Many).
ارتباط چند به چند (Many to Many).
ارتباطات چندشکلی که یک مدل می‌تواند با چندین مدل دیگر مرتبط باشد (Polymorphic).

3- اسکوپ‌های عمومی و محلی: می‌توانید کوئری‌های عمومی که به صورت مکرر استفاده می‌شوند را در مدل تعریف کنید (Global Scopes) یا متدهایی ایجاد کنید که اسکوپ‌های محلی را تعریف کنند (Local Scopes).

4- پیمایشگرها و دسترسی‌گرها (Mutators and Accessors): به شما اجازه می‌دهد تا رفتارهای خاصی را هنگام تنظیم یا گرفتن ویژگی‌های یک مدل اعمال کنید.

5- رخدادها (Events): الوکوئنت دارای سیستم رخدادهایی است که شما می‌توانید به آن‌ها گوش دهید و به ازای رویدادهایی مانند creating, updating, deleting و غیره واکنش نشان دهید.

6- کوئری‌سازی شیء‌گرا (Object-Oriented Querying): الکوئنت به شما اجازه می‌دهد تا به جای استفاده از SQL خام، از متدهای شیء‌گرا برای ایجاد کوئری‌ها استفاده کنید. این کوئری‌ها شامل فیلتر کردن، مرتب‌سازی، گروه‌بندی و سایر عملیات‌های پیچیده می‌شود، بدون اینکه نیازی به نوشتن یک خط SQL باشد.

7- مهاجرت‌ها (Migrations) و بذرها (Seeders): در کنار مدل‌های الوکوئنت، لاراول ابزارهایی برای مدیریت ساختار پایگاه داده (مهاجرت‌ها) و پر کردن جداول با داده‌های نمونه (سیدر و فکتوری) فراهم می‌کند. این ابزارها به توسعه‌دهندگان کمک می‌کنند تا به‌راحتی پایگاه داده‌های خود را ایجاد و مدیریت کنند.

8- پشتیبانی از Eager Loading و Lazy Loading: الکوئنت از دو روش برای بارگذاری داده‌های مرتبط با مدل‌ها پشتیبانی می‌کند:

بارگذاری (Eager): این روش به شما امکان می‌دهد داده‌های مرتبط با یک مدل را همزمان با فراخوانی مدل بارگذاری کنید تا از تعداد کوئری‌های اضافی جلوگیری شود.

بارگذاری (Lazy): این روش زمانی داده‌های مرتبط را بارگذاری می‌کند که به آن‌ها نیاز داشته باشید. این ممکن است منجر به ارسال کوئری‌های اضافی به پایگاه داده شود.

9- پشتیبانی از Soft Deletes: الکوئنت امکان (Soft Delete) را فراهم می‌کند که به جای حذف دائمی یک رکورد، آن را "پنهان" می‌کند تا بعداً بتوان آن را بازیابی کرد. این کار از طریق یک فیلد اضافی در جدول انجام می‌شود که تاریخ و زمان حذف را ثبت می‌کند.

10- و...

مزایا و کاربردهای عملی:

استفاده از الوکوئنت باعث می‌شود که کدها به مراتب خواناتر و قابل نگهداری‌تر باشند.

نیاز به نوشتن کوئری‌های SQL به حداقل می‌رسد و توسعه‌دهنده می‌تواند روی منطق برنامه تمرکز کند.

الوکوئنت با ارائه ابزارهایی برای مدیریت روابط بین جداول، پیچیدگی مدیریت این روابط را به طور چشم‌گیری کاهش می‌دهد.

الوکوئنت برای توسعه‌دهندگانی که از لاراول برای ساخت برنامه‌های وب استفاده می‌کنند، ابزاری ضروری است. این ابزار در تمامی جنبه‌های کار با پایگاه داده از جمله تعریف مدل‌ها، روابط، کوئری‌سازی و حتی مدیریت مهاجرت‌های پایگاه داده (Database Migrations) کاربرد دارد.

در نهایت، الوکوئنت به عنوان یکی از ویژگی‌های برجسته لاراول، یک سطح انتزاعی بسیار قوی برای کار با پایگاه داده‌ها فراهم می‌کند که هم کار را سریع‌تر و هم کدها را تمیزتر و قابل نگهداری‌تر می‌سازد.

در بخش های بعدی با تمام موارد نام برده شده به طور مفصل آشنا خواهیم شد.

🔖 #Laravel, #PHP, #لاراول, #فصل_۴

👤 AmirHossein

💎 Channel: @DevelopixLaravel
  • ❤ 3
  • 👍 3
  • 🔥 3
More from @developixlaravel
  1. Oct 1, 2026روابط پایگاه داده چند ریختی یا Eloquent Polymorphic در لاراول - قسمت اول در لاراول، روابط…
  2. Sep 30, 2026مدیریت همزمانی و قفل‌گذاری روی پردازش‌ها در لاراول (Laravel Atomic Locks) در بخش چهارم از…
  3. Sep 26, 2026🔥 پکیج: ورود با حساب‌های دیگر؛ Socialite برای اضافه‌کردن ورود با حساب‌های دیگر به پروژه ل…
  4. Sep 25, 2026🔒 فقط داده‌های تأییدشده را ذخیره کن وقتی یک فرم ویرایش پروفایل داری، ممکن است کلاینت علاو…
  5. Sep 20, 2026حفاظت از پردازش ها با Laravel Rate Limiter بخش سوم - پیکربندی در قسمت سوم از مجموعه آموزش…
  6. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →