درسته که Eloquent Query های لاراول خیلی خوب هستندمثلا  Post::all میای کل پست ها رو برمیگردونه. ولی بعضی مواقع میخوایم که custom query خودمون رو بسازیم. مثلا من میخوام که همه ی پست هایی که active هستند را select کنم. راه معمولیش به صورت زیر هست

$activePosts = Post::where('active', true)->get();

حالا فرض کنید که کوئری ما پیچیده تر هم باشد و بخواهیم چندین بار هم تکرار کنیم. پس میایم از لاراول اسکوپ استفاده میکنیم که ساده تر شه

همان کوئری بالا را پیاده سازی میکنیم (در مدل Post)

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

دقت کنید که لاراول کلمه ی scope را به عنوان alias میشناسه. پس هرموقع میخواین ازش استفاده کنید، لازم به نوشتنش نیست (مثل زیر)

$activePosts = Post::active()->get();

تا کنون 0 نظر به ثبت رسیده است

برای ثبت نظر باید وارد حساب کاربری خود شوید. اگر تا کنون ثبت نام نکردید اینجا کلیک کنید