Helper itibaren Controller Erişim Fonksiyonu

1 Cevap php

Ben sadece birkaç saat önce CodeIgniter'ı kullanmaya başladı, ve ben bazı sorunlar rastladım ettik. Ben adında bir denetleyici şu anda admin.php olan bir işlevi çağırmak çalışıyorum. Ben bir yardımcı bu erişmeye çalışıyorum. Bunu nasıl düzgün yapardı? Ben hemen hemen her şeyi denedim, ama hiçbir şey ben şu hatayı alıyorum gibi çalışıyor gibi görünüyor:

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

Bu konuda herhangi bir yardım çok takdir

1 Cevap

Ben jimyi katılıyorum. Sizin yardımcısı ve kütüphane sınıfları bir uygulamada herhangi bir denetleyici bağımsız olmalıdır. Eğer bir "sayfa başlığı" yardımcısı varsa, örneğin, yönetici denetleyicisi herhangi bir davranışa bağımlı olmamalıdır. Ne bir yönetici denetleyicisi yoktu başka uygulamada sayfa yardımcısı kullanmak istedi? Eğer yolda yönetici kontrolöre değişiklik yaparsanız ya da ne, şimdi bu değişiklikler yardımcıya kırmak yok emin olmak gerekir.

Lütfen yardımcı işlevi yönetici denetleyicisi olan bazı verilerin belirli biraz ihtiyacı varsa, denetleyici bir fonksiyon parametre olarak geçebileceği. Kontrolör yardımcısı bir bağımlılık olmasının aksine bu şekilde yardımcı denetleyici bir bağımlılıktır.

Ayrıca, bu hata iletisi aradığınız ne olursa olsun şey düzgün örneği olmamıştır demektir. Yani probaly gibi bir şey yapıyor:

$this->load();

helper içinde. Ancak, Yardımcısı,

$this
(dolayısıyla 'olmayan nesne' hata) tanımsız. CodeIgniter bir kontrol dışından modelleri, kitaplıklar ve görüşlerini yüklemek için bir yol sağlar. Ama, bildiğim kadarıyla, bu denetleyicileri için bunu yapmak için izin vermez. İşte yukarıda belirtilen nedenlerden dolayı olsa iyi. Eğer bağımlılıkları tanıtmak zaman dikkatli olmalıyız.