Я использую Kohana 3.0.6 с ORM.
У меня есть модель с именем "грузовик", а в его таблице есть столбец с идентификатором его создателя ("создатель"). Тогда у меня есть модель "производитель" с идентификатором и именем в его таблице.
Я пытаюсь выполнить простое СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ, когда я показываю список грузовиков, чтобы я мог сразу получить имена их производителей.
Вот моя "грузовая" модель:
<?php defined('SYSPATH') or die('No direct access allowed.');
class Model_Truck extends ORM {
// Database settings
protected $_db = 'default';
protected $_table_name = 'trucks';
protected $_primary_key = 'id';
//Tried adding this but doesn't seems to work
protected $_has_one = array('maker' => array('model' => 'maker') );
// Table fields
protected $_table_columns = array(
'id' => array('data_type' => 'int', 'is_nullable' => FALSE),
'serial' => array('data_type' => 'string', 'is_nullable' => FALSE),
'maker' => array('data_type' => 'string', 'is_nullable' => FALSE),
'model' => array('data_type' => 'string', 'is_nullable' => FALSE),
'year' => array('data_type' => 'int', 'is_nullable' => FALSE),
);
}
Как видите, я использую эту строку, чтобы добавить has_one, хотя я также видел где-то вызов with (), но не мог заставить его работать должным образом (doc немного не хватает, специально для версии 3.xx).
protected $_has_one = array('maker' => array('model' => 'maker') );
Вот строка, которую я использую в представлении, чтобы вывести имя производителя (что-то вроде этих строк):
foreach ($trucks as $t) {
echo($t->maker->name);
}