محسن مهری
4 سال پیش توسط محسن مهری مطرح شد
1 پاسخ

استفاده از scope در controller

درود دوستان - اقا خلاصه توضیح بدم
اومدم توی کنترلرم تابعی رو به صورت static تعریف کردم و الان که نمیتونم به $this دسترسی داشته باشم، دارم بهای سنگینی براش میدم (پیچیدگی تو کدهام پیش اومد اگه فقط و فقط $this دسترسی داشتم خیلی بهتر میشد پیاده سازیش)
الان میخام ببینم میتونم از مبحث scope توی تعریف یک متد توی کنترلر استفاده کنم ؟ چون انگار حتما باید بهش توی ورودی یک $query بدی که من اصلا نیازی ندارم به چنین چیزی؟!
سوال اصلیم اینه
آقا اصلا استفاده از تعریف scope توی کنترلر برای یک تابع استاندارد یا نه ؟!یا فقط برای استفاده در مدل هاست؟
@mohsenbostan
@ali.bayat
@MehdiAghighi


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

ببینید Query Scope ها در واقع راهی برای استفاده راحت از امکانات الکوئنت هستند..
شما میتونید لاجیک های پیچیده رو پشت یک اسکوپ پنهان کنید و خیلی راحت ازش استفاده کنید.

اسکوپ ها رو داخل مدل ها تعریف میکنیم
اما در هر جای اپلیکیشن میتونند استفاده بشند

اما در مورد this$

this$ در واقع به Instance ی از کلاس اشاره داره
حالا وقتی از متد استاتیک استفاده میکنید.. اصلا کلاس instantiate نمیشه که شما بتونی به this$ دسترسی داشته باشی
پس نمیتونی از this$ به شکل همیشه استفاده کنی
در این شرایط باید از self:: استفاده کنی

به شکل زیر میتونی عمل کنی

Class MyClass {
public function someMethod() {

}

public static function staticMethod() {
    return self::someMethod();
}

}

اما در کل مراقب استفاده از متدهای استاتیک باش


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

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