我有两个命名的表utilities
,types
我试图从实用程序视图访问类型中的其他字段。例如;$utilities->type->type;
实用程序会have_one
键入和键入belong_to
实用程序对吗?
这就是我目前拥有它的方式,而不是将utilities.type_id
其设置为utilities.id
. 结果,它为每一行提取不同的类型,即使它们都是相同的类型。
我应该如何使用 Kohana 3.2 ORM 布置我的模型关系。
实用程序
<?php
class Model_Utility extends ORM {
protected $_has_one = array(
'type' => array(
'model' => 'type',
'foreign_key' => 'type_id',
),
);
表结构
+---------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| utility_name | varchar(255) | NO | | NULL | |
| type_id | int(11) | NO | | NULL | |
| contact_name | varchar(255) | NO | | NULL | |
| contact_email | varchar(255) | NO | | NULL | |
| contact_phone | varchar(255) | NO | | NULL | |
+---------------+--------------+------+-----+---------+----------------+
类型
class Model_Type extends ORM {
protected $_belongs_to = array(
'utility' => array(
)
);
表结构
+---------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+----------------+
| type_id | int(11) | NO | PRI | NULL | auto_increment |
| type | varchar(255) | NO | | NULL | |
+---------+--------------+------+-----+---------+----------------+