آشنایی با scope در لاراول

گردآوری و تالیف:بهزاد دودکانی

تاریخ انتشار : 10 دی ,1398

دسته بندی: لاراول

گاهی اوقات ممکن است شما در شرایطی قرار بگیرید که نیاز باشد از یک کد یا یک راه حل چندین مرتبه در کد نویسی خود استفاده کنید. در این صورت ما چگونه و از چه روشی می‌توانیم مشکل تکرار چند باره‌ی کدها در لاراول را حل کنیم؟ لاراول یک راه حل مناسب برای این مشکل ارائه داده است که به وسیله آن شما می‌توانید کدهای خود را به عبارات قابل خواندن و قابل استفاده‌ی مجدد تبدیل کنید، این راه حل scope نامیده می‌شود.

 در این مقاله ما می‌خواهیم به بررسی چگونگی استفاده از scopeها در لاراول بپردازیم پس با ما همراه باشید.

تصور کنید شما در حال ایجاد یک اپلیکیشن مدیریت پروژه‌ها هستید و در قسمت‌های مختلف این اپلیکیشن شما نیاز دارید که پروژه‌های تکمیل شده را نشان دهید. شما می‌توانید از کوئری زیر برای بازیابی پروژه‌های کامل شده در اپلیکیشن خود استفاده کنید:

 
$completedProjects = Project::where('completed'. 1)->get();

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

برای تعریف اسکوپ در مدل خود پیش از نام متد کلمه scope را قرار می‌دهیم مانند زیر

منبع

class Project extends Model {

public function scopeCompleted($query){

        return $query->where('completed', 1);

    }

مقاله های پیشنهادی
card img
آشنایی با scope در لاراول

گاهی اوقات ممکن است شما در شرایطی قرار بگیرید که نیاز باشد از یک کد یا یک راه حل چندین...

دیدگاه های ارزشمند شما

برای ارسال نظر لازم است ابتدا وارد سایت شوید

هیچ دیدگاهی تا به این لحظه برای این موضوع ثبت نشده است