SQL присоединяется к Kohana ORM - PullRequest
1 голос
/ 01 июля 2010

Я использую 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);
}

1 Ответ

0 голосов
/ 02 июля 2010

У вас есть столбец с именем truck_id в таблице производителей?

...