Ben denetleyicisi oluşturduğunuzda, ben (AccountModel) sınıf değişkeni "Model" için bir model yük ve kullanıcı oturum olup olmadığını kontrol:
function __construct()
{
parent::__construct();
$this->loadModel("AccountModel", "Model");
$account = $this->getUserAccount();
...
}
Ölümcül hata getUserAccount oluşur ():
Ölümcül hata: satır 57 wwwroot / lib / hesap / account.php olmayan bir nesne üzerinde bir üye işlev getAccount () Çağrı
Bu hat 57 var, ben daha önce yüklenmiş modeli üzerinde getAccount()
çağırır:
$account = $this->Model->getAccount($_SESSION["account"]["user_account_id"]);
Yani, $this->Model
nesne değil gibi görünüyor, ama ben aramadan önce var_dump($this->Model)
koyduğunuzda getAccount()
, diyor object(AccountModel)#26 (2) ...
Ben de controller dökülüyor ki, var_dump($this)
yaptım ve bu sınıf değişkeni $Model
var ve AccountModel örneği buldu.
Herkes cehennem ne oluyor bana söyleyebilir misiniz?
Btw, model, (denetleyicisi yöntemi) gibi atanır:
function loadModel($model_name, $var_name)
{
// blah blah blah
$obj = new $class_name();
$this->$var_name = $obj;
}
Update:
Ben doğrudan çağrı eğer __ Construct () getAccount() benim modeli (daha önce aradım getUserAccount ve getAccount içinde) parametre olmadan, PHP sayin hatası verir:
Missing argument 1 for AccountModel::getAccount()
Ben parametre eklediğinizde Ama yine itiraz olmadığını söylüyor.
Solution:
Denetleyicisi örneğine modelleri, yöntem loadModel () atanan modeli yükleme ve STAIC mülk haline yüklü modelin her adını depolanabilir. Bir hata denetleyici ikinci kez çağrılan olmuştur oluştu, yani kontrolörün ikinci örneği gerçekten modelini alamadım. Kontrol nesne özelliği (değiştirilir staitc mülkiyet modeli zaten Require_once yükünü düşürür kullanarak önler adı olmuştur, ama şimdi çalışıyor, neyse o bölümü ;) için daha iyi bir çözüm bulmak zorunda kalacak, yardım için herkese teşekkür ederim.