Я прочитал несколько разных сообщений здесь, и я не могу понять, что я делаю неправильно.CodeIgniter и DataMapper
My 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