سؤال

وأنا فقط بدأت باستخدام كود إغنيتر قبل ساعات قليلة، ولقد صادفت بعض المشاكل. أحاول أن استدعاء دالة، الذي هو حاليا في وحدة تحكم اسمه admin.php. أنا تحاول الوصول إلى هذا من مساعد. كيف لي أن القيام بذلك بشكل صحيح؟ لقد حاولت كل شيء تقريبا، ولكن لا شيء يبدو أنه يعمل كما أتلقى الخطأ التالي:

Fatal error: Call to a member function login() on a non-object

وأي مساعدة في هذا الموضوع سيكون محل تقدير كبير

هل كانت مفيدة؟

المحلول

وأنا أتفق مع jimyi. يجب أن تكون مساعدك ومكتبة فصول مستقلة عن أي وحدة تحكم معينة في التطبيق. إذا كان لديك "عنوان الصفحة" المساعد، على سبيل المثال، فإنه لا ينبغي أن تعتمد على أي سلوك معين من وحدة تحكم المشرف. ماذا لو أردت استخدام المساعد الصفحة في تطبيق آخر لم يكن لديك وحدة تحكم المشرف؟ أو ماذا لو قمت بإجراء تغييرات على وحدة تحكم المشرف على الطريق، والآن لديك للتأكد من هذه التغييرات لا تنكسر المساعد الخاص بك.

إذا وظيفة المساعد الخاص بك يحتاج إلى بعض الشيء معين من البيانات أن وحدة تحكم المشرف له، هل يمكن أن تمر عليه في كمعلمة وظيفة من وحدة تحكم. بهذه الطريقة المساعد هو تبعية وحدة تحكم بدلا من وحدة تحكم كونها تبعية المساعد.

وبالإضافة إلى ذلك، أن رسالة الخطأ يعني أن كل ما الشيء الذي تتصل به لم مثيل صحيح. حتى تقومون به probaly شيئا مثل:

$this->load();

ومن داخل المساعد. ومع ذلك، في المساعد، وغير معرفة

$this
(وبالتالي "غير الكائن 'خطأ). يوفر كود إغنيتر وسيلة لتحميل النماذج والمكتبات وجهات النظر من خارج وحدة تحكم. ولكن، وبقدر ما أعرف، فإنه لا يسمح لك أن تفعل هذا لوحدات التحكم. هذا شيء طيب رغم ذلك، للأسباب المذكورة أعلاه. يجب ان يكون حذرا عند إدخال التبعيات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top