我已閱讀了幾個不同的帖子,我無法弄清楚我做錯了什麼。CodeIgniter和DataMapper
我的DB是建立類似如下:
homes
- id
- address_id
- price
- etc...
address
- id
- home_id
- address1
- address2
- etc...
然後我的模型看起來像這樣,冷凝。
home.php
<?php
class Home extends DataMapper {
public var $has_one = array('address');
}
address.php
<?php
class Address extends DataMapper {
public var $has_one = array('home');
}
然後我的控制器使用下列內容:
homes.php
class Homes extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->library('datamapper');
}
public function index() {
$homes = new Homes();
$homes->include_related('address');
$homes->get_iterated();
$this->output->enable_profiler(TRUE);
_p($homes); // Self made function that wraps a print_r() in two <pre> tags.
}
}
如果我註釋掉這兩條線,我得到的標準CI返回數組。
$homes->include_related('address');
$homes->get_iterated();
如果我不那麼我得到一個服務器錯誤。這是我第一次使用DataMapper,我幾乎可以肯定我做的一切都錯了,但不知道從哪裏開始。
UPDATE:
我想通了,我的問題。我只好到數據庫表更改address
到addresses
,在我address.php
模型我必須指定var $table = 'addresses';
這一切固定。
我經過一番發展才意識到這一點。我仍然無法得到我所追求的結果,但在這一點上,我假設我的'$ has_many'變量是造成這種情況的原因。我可以得到一個結果,但相關結果列表不起作用。 – Seth 2012-04-04 17:13:26