Я прочитал несколько разных постов здесь и не могу понять, что я делаю неправильно.
Моя БД настроена следующим образом:
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 и почти уверен, что делаю все неправильно, но понятия не имею, с чего начать.
ОБНОВЛЕНИЕ:
Я понялиз моей проблемы.Мне пришлось изменить таблицу БД address
на addresses
, и в моей address.php
модели мне пришлось указать var $table = 'addresses';
Это исправило все.