Мне нужна помощь в создании ORM-запроса CodeIgniter Datamapper, который включает поля соединения.У меня есть таблица Торговцы и таблица Продавцы .Они имеют отношение многие-к-одному, то есть многие Торговцы являются частью единого Продавца .
Таким образом, мои таблицы баз данных, следующие за ORM Datamapper ORMКонвенция:
торговцы
продавцы
торговцы_вендоры
Кроме того,в таблице merchants_vendors у меня есть объединяемые поля 'role' и 'admin'.Очевидно, что эти данные должны быть помещены в таблицу соединений, если бы они были помещены в таблицу Merchants , я бы не смог определить роли и администраторов для Vendor .
Наконец, Торговцы связаны с пользователями отношениями один-к-одному.Подумайте о Merchants как о расширении Users .
Я пытаюсь создать массив PHP из данных, следующих этой структуре данных, но я не могу 'Похоже, что роли и поля администратора заполнены правильно.Я удалил лишние столбцы для вашей простоты:
[vendor] => Array
(
[id] => 1
[name] => Vendor1
[users] => Array
(
[0] => Array
(
[id] => 277
[username] => merchant1
[firstname] => Merchant1
[merchant] => Array
(
[id] => 1
[user_id] => 277
[role] => Sales
[admin] => 0
)
)
[1] => Array
(
[id] => 282
[username] => merchant2
[firstname] => Merchant2
[merchant] => Array
(
[id] => 2
[user_id] => 282
[role] => Software
[admin] => 1
)
)
)
)
Вот код, который я использую - при условии, что мы знаем идентификатор поставщика:
$v = new Vendor($id);
if($v->exists())
{
$d['vendor'] = $v->to_array();
$m = new Merchant();
$m->where_related_vendor('id', $v->id)->get();
if($m->exists())
{
foreach($m as $mK => $mV)
{
$u = new User();
$u->where_related_merchant('id', $mV->id)->get();
$d['vendor']['users'][$mK] = $u->to_array();
$d['vendor']['users'][$mK]['merchant'] = $mV->to_array();
}
}
}
$this->load->view('myview', $d);
Это дает мне понять, как выше PHPструктура данных без роли и администратора. Мне хорошо известна функция include_join_fields()
, но я не могу заставить ее работать.В частности, я попытался $m->vendor->include_join_fields();
Затем попытался получить доступ к полям роли / администратора с помощью $mV->vendor->join_role
и $mV->vendor->join_admin
- но это не работает.
Ваша помощь очень ценится!