🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ علی
Eloquent ORM
جامعه لاراول ایجاد شده در ۲۹ آذر ۱۴۰۰

سلام

تویه Eloquent لاراول هر رکورد از پایگاه داده یک model درنظر گرفته میشه؟ درسته؟ مثلا تو مستنداتش نوشته بازیابی modelها یا update کردن modelهای پایگاه داده.

مثلا هر رکورد جدول users یک شی User درنظر گرفته شده و وقتی رکوردهایی رو از این جدول select میکنیم یک collection از اشیاء User به ما میده یا وقتی میخواهیم یک رکورد رو درجدول درج کنیم ابتدا یک شی User میسازیم و attributeهاشو ست میکنیم و با استفاده از متد save اون مدل (رکورد) رو در پایگاه داده ذخیره میکنم.

سلام دوست عزیز

هر رکورد در دیتابیس یک مدل در نظر گرفته نمیشه... در واقع وقتی شما اطلاعات کاربر را در جدول کاربران ذخیره ‌می‌کنید به‌طور داده‌های ساختارمند ذخیره خواهند شد و هنگامی که از Eloquent استفاده می‌کنید و لیست کاربران را فراخوانی می‌کنید، هر کاربر یک نمونه از مدلش هست و این موضوع در سطح لاراول هست نه در سطح دیتابیس.

چرا کالکشن دریافت می‌کنیم؟

دقت کنید زمانی که لیستی از کاربران (یا هر داده‌ای) را فراخوانی می‌کنید، هر کدام یک نمونه از مدل خودشان هستند و لاراول این لیست را درون یک کالکشن (مجموعه) برمی‌گردونه تا راحت‌تر بتونید عملیاتی که تصمیم دارین رو روی این دسته اجرا کنید، وگرنه اگر تنها یک کاربر را انتخاب کنید دیگه کالکشن دریافت ‌نمی‌کنید و فقط یک نمونه از مدل کاربر به شما برگردانده خواهد شد.

چرا لاراول در داکیومنت نوشته اپدیت/ساخت مدل؟

بخش معرفی مدل‌ها در داکیومنت لاراول را با دقت مطالعه کنید، به جمله جالبی به این شکل برمیخورید: هر جدول در دیتابیس معادل مدل مورد نظر خودش در Eloquent است. یعنی برای اینکه کار با دیتابیس و نوشتن عملیات CRUD ساده‌تر باشه لاراول مدل متناظر رو به شما میده و در پس زمینه کدهای نوشته شده را به کوئری‌های خام تبدیل و اجرا می‌کند.


لینک مطالعه بیشتر داکیونت لاراول

لینک مطالعه بیشتر دیجیتال اوشن


رضا * ۲۹ آذر ۱۴۰۰، ۰۸:۱۳


ممنون ازپاسختون


من هم منظورم از دید برنامه بود مثلا هر رکورد موجود در جدول users از دید برنامه ما یک نمونه از مدل User هست وگرنه این مشخص هست که مدل مستقیما تو جدول پایگاه داده insert نمیشه و دستوراتی که ما مینویسیم درنهایت در پس زمینه Eloquent به query تبدیل میشن.


چیزی که واسه من تازگی داشت اینه که تویه Eloquent هر رکورد از جدول users یک نمونه از مدل User هست یا همونطور که خودتون گفتید «هر کاربر یک نمونه از مدلش هست» این دید جالبیه مثلا وقتی میخواهی یه رکورد به جدول user اضافه کنیم ابتدا میاییم یک نمونه user میسازیم و attributeهای اونو ست میکنیم و با متد save ذخیرش میکنیم (البته میشد با متد create هم اینکارو کرد) ، از طرفی وقتی میخواهیم یه سری user رو از پایگاه داده بازیابی کنیم نیازی نیست یک نمونه user بسازیم و منطقی هم هست و وقتی رکوردهایی رو select کنیم خودش user‌های انتخاب شده رو در قالب یک شی برای ما برمی‌گردونه


$users = User::all();


پس با این حساب می‌تونیم بگیم هر شی‌ای که از مدل User ساخته میشه تو Eloquent معادل یک رکورد از پایگاه داده هست؟ و به خاطر همین تویه Eloquent برای بازیابی ، update یا delete کردن یک رکورد از پایگاه داده نمیاییم یک شی از مدل user بسازیم. بلکه اون رکوردهارو در قالب یک شی دریافت میکنیم و با استفاده از متدهاش میتونیم اون رکورد رو دستکاری کنیم. درست متوجه شدم؟


علی ۳۰ آذر ۱۴۰۰، ۰۶:۰۴

سلام مجدد

کاملا درسته دوست عزیز

رضا * ۰۱ دی ۱۴۰۰، ۱۴:۳۷