🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ alirezamachanloo
تفاوت $query و Builder
جامعه لاراول ایجاد شده در ۰۳ تیر ۱۴۰۱

سلام وقت بخیر

داخل داکیومنت لاراول از query به عنوان آرگومان استفاده کرده است برای Scope به صورت زیر:

public function scopePopular($query)
    {
        return $query->where('votes', '>', 100);
    }

اما داخل جلسه ی تدریس شده استاد از Builder استفاده کردن به صورت زیر

public function scopeFilter(QueryBuilder $builder , array $params){
      //code
    }

میخواستم ببینم تفاوت این دو چیه و چه زمان ما از query استفاده میکنیم و چه زمان از Builder

سلام علیرضا عزیز، وقت به خیر

این دو هیچ تفاوتی باهم نداره. آرگومان اول scopeها باید از جنس QueryBuilder باشه در غیر اینصورت سیستم به شما خطا میده. حالا اگر شما بنویسید $query خود لاراول QueryBuilder به عنوان اولین آرگومان پاس میده و در نتیجه متغیر $query شما از جنس QueryBuilder هست. یعنی شما وقتی مینویسید $query دقیقا انگار که نوشتید QueryBuilder $query.

یکی از خوبی‌های روش دوم Auto Complete ویرایشگر متنوتون هست مثل phpstorm.

موفق باشید

بهترین پاسخ
محمد حسن عاطفت ۰۴ تیر ۱۴۰۱، ۰۸:۰۲