Eğer CodeIgniter başka bir model içinde bir model erişebilir miyim?

4 Cevap php

Ben kimlik doğrulaması gerektiren CodeIgniter'ı kullanarak bir webapp yazıyorum. Ben bütün kimlik doğrulaması yapar bir model yarattı. Ancak, başka bir model içinde bu kimlik doğrulama modeli erişmek için bir yol bulamıyorum. Başka modu içinde bir modeli erişmek için bir yol, ya da CodeIgniter içinde kimlik doğrulama işlemek için daha iyi bir yolu var mı?

4 Cevap

Genel olarak, bir nesne içindeki nesneleri oluşturmak istemiyorum. Bunun yerine, açık bir API yazmak ve modeli bir modeli enjekte, kötü bir alışkanlıktır.

<?php
// in your controller
$model1 = new Model1();
$model2 = new Model2();
$model2->setWhatever($model1);
?>

Bu muhtemelen bu başka bir yol çözmek olmalıdır rağmen, modeller içinde modeller yükleyebilirsiniz görünüyor. CodeIgniter forums bir tartışma için bkz.

class SomeModel extends Model
{
  function doSomething($foo)
  {
    $CI =& get_instance();
    $CI->load->model('SomeOtherModel','NiceName',true);

    // use $CI instead of $this to query the other models
    $CI->NiceName->doSomethingElse();
  }
}

Ayrıca, ben Till ne nesneler içinde nesneleri oluşturmak gerektiğini konuda söylediğini anlamıyorum. Tabii ki gerekir! Argümanlar olarak nesneleri gönderme daha az net görünüyor bana.

Modelinizdeki kimlik tutmayın. Yalnızca veritabanı veya LDAP ya da her türlü ile arayüz modelleri kullanın.

Ben kimlik doğrulama ve yetkilendirme yönetmek için kullanabileceğiniz bir Auth kütüphane oluşturdu. Sen denetleyicileri böyle bir kütüphanesi erişebilirsiniz.

Bir model çerçevesinde bir model yüklüyor yeni CodeIgniter ile artık mümkün.