Ali Ghaleyan
6 سال پیش توسط Ali Ghaleyan مطرح شد
4 پاسخ

Function scopeName

درود
توابع scope چه تفاوتی با توابع معمولی در لاراول دارن
برای چی از این نوع توابع استفاده میکنیم؟؟؟


ثبت پرسش جدید
حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 6 سال پیش مطرح شد
1

احتیاجی به گفتن نیست در مستندات بشکل کامل توضیح داده
https://laravel.com/docs/5.0/eloquent#query-scopes


Ali Ghaleyan
تخصص : برنامه نویس لاراول
@Serjik 6 سال پیش مطرح شد
0

@hesammousavi
درود ببخشید اما من نمیتونم متوجه بشم که چی گفته میتونید آمیانه تر بهم بگید


hosein moni
@hoseinmont 6 سال پیش مطرح شد
1

توابع شخصی سازی شدس در یه جورایی دیگه
مثلا شما به جای این که هر دفعه بیای بگی
این پست
statusش برابر با 1 هست پس حالا نشونش بده
میای یدونه اسکوپ مینویسی و استفاده میکنی
شما لینکی که اقای موشوی فرستاد رو ببینید مثالش رو
یه شرط گزاشته
نمیخاد هر دفعه اونو دیگه بنویسه


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
3

@alighalehban1379

هنگام کار کردن با مدل‌ها همیشه کار ما بسادگی استفاده از یه متد ()User::all نیست.
فرض کنیدکه می‌خواهیم لیست تمام کاربرانی که فعال هستند رو بگیریم. کدمون به این شکل میشه:

$activeUsers = User::where('active', 1)
            ->get();

حالا با استفاده از Scope در واقع کوئری where رو در یک متد داخل مدل تعریف میکنیم. بشکل زیر:

class User extends Model
{

    public function scopeActive($query)
    {
        return $query->where('active', 1);
    }

}

بعد با استفاده از متدی که نوشتیم کوئری رو می‌گیریم:

$activeUsers = User::active()
            ->get();

حالا می‌تونید چند اسکوپ داخل یه مدل تعریف کنید و با هم استفاده کنید:

$users = User::active()
    ->popular()
    ->type('admin')
    ->get();

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام