keyboard_return  چسبون مقالات آموزشی آموزش کار با scope در مدلهای لاراول
  1. آموزش کار با scope در مدلهای لاراول

آموزش مدل در لاراول laravel

در این آموزش شما رو با query scope در لاراول و مدل ها آشنا می کنم. با این روش به راحتی می توانید با database کار کنید و سرعت در برنامه نویسی mvc رو افزایش بدید. با scope امکان استفاده چند باره از یک پرس و جو در برنامتون رو می تونید داشته باشید.

آموزش مدل در لاراول

فایل مدل خودتون رو باز کنید. برای ساختن یک scope کافیه کلمه ی scope رو قبل نام متد بیارید. برای مثال پرس و جوی زیر معدل های بالای ۱۵ را در متغیر query$ قرار می دهد :

class Student extends Model {
  public function scopeAvg($query)
  {
    return $query->where('average', '>', 15);
  }
}

کد فوق را در مدلی که از قبل ساخته اید قرار بدید. فایل رو save کنید. حالا برای اینکه از کوئری فوق در هرجای کدتون که خواستید استفاده کنید باید به صورت زیر عمل کنید. برای مثال من کد زیر رو در کنترلر مورد نظرم وارد می کنم:

$getAvg = Student::avg()->get();

کد بالا یعنی برو به مدل Student و متد scopeAvg رو اجرا کن و مقدار رو بگیر در متغیر getAvg قرار بده. متذکر می شم که برای کار با این روش حتما باید با مدل ها در معماری mvc لاراول آشنا باشید. خب تا اینجا کار با static scope رو یاد گرفتید. اما گاهی لازم میشه تا یک پارامتر رو به تابع model خودتون بفرستید تا در کوئری اجرا بشه. این روش فقط با dynamic scope یا پرس و جوی پویا امکان پذیره. فرض کنید بخواهیم توسط کد ملی یک دانش آموز نام آن را پیدا کنیم. در این روش باید کد ملی دانش آموز مورد نظر رو به scope مورد نظرمون در مدل خودمون بفرستیم. در مثال زیر نام مدل را Student ، نام scope را scopeGetId و نام پارامتر ارسالی را studetnId قرار دادیم.

class Student extends Model
{
        public function scopeGetId($query,$studetnId)
        {
                return $query->where('stuid',$studetnId)->pluck('studentname');
        }
}

برای استفاده از پرس و جویی که در مدل ساختید (کد بالا) باید در کنترلر بصورت زیر عمل کنید:

$student = Student::GetId('5214785474')->get();

تذکر: برای فراخوانی پرس و جو به روش scope نباید در کنترلر در اول نام متد کلمه ی scope را بیاورید. برای مثال در مدل scopeGetID را نوشتیم ولی در کنترلر فقط GetId را می نویسیم.

کلمه ی کلیدی pluck فقط ستون مورد نظر از فیلد را برای ما برمی گرداند که در مثال فوق چون ما نام دانش آموز مد نظرمان بود داخل پرانتز نام ستون studentname در دیتابیس رو وارد کردیم.آموزش scope در model رو برای شما تشریح کردیم . اگر سوالی داشتید کامنت کنید تا در اسرع وقت پاسخ دهیم.  

آموزش کار با scope در مدلهای لاراول - 4.2 از 5 بر اساس 150 رای

امتیاز کاربران

آموزش کار با scope در مدلهای لاراول
دیدگاه‌ها
الهام الهام 5 سال پیش
چرا در مدل ؛ تابع scope تعریف میکنن؟ تابع scope فقط برای این است که دستور where در ان گذاشته شود...یا کاربرد دیگری دارد؟ public function scopePublished($query) { return $query->where('merchants.published', '=', 1); } فواید scope را تعرف کنید؟ آیا Scope فقط برای شرط where میباشد؟ من دیدم فقط شرط را در آن میگذارن.where آیا کاربرد دیگری ندارد؟
آرمان بابائی آرمان بابائی 5 سال پیش
در حالت کلی برای اینکه از بازنویسی پرس و جو جلوگیری بشه از Scope استفاده می کنیم.
فری فری 5 سال پیش
نه خوب بود ممنون اگه کنارش یه محتوای ویدیویی هم ایجاد میکردید فوق العاده میشد
خضرا خضرا 6 سال پیش
سلام. ممنون بابت زحمتی که کشیدید. ولی از سر وا کردین . توضیح کاملی نبود.
آرمان بابائی آرمان بابائی 6 سال پیش
سلام دوست عزیز.سعی شده خیلی ساده و روان توضیح داده بشه.اگر سوالی داشتید می تونید مطرح کنید تا کمک کنیم

2024 © Copyright کليه حقوق مادی و معنوی براي چسبون محفوظ است و هرگونه کپی برداری پیگرد قانونی دارد.