名前の付いた2つのテーブルがutilities
ありtypes
、ユーティリティビューからタイプ内の他のフィールドにアクセスしようとしています。例えば;$utilities->type->type;
ユーティリティはhave_one
タイプし、タイプはbelong_to
ユーティリティで正しいですか?
これは私が現在持っている方法でありutilities.type_id
、キーの設定を参照するのではありませんutilities.id
。その結果、すべて同じタイプであっても、行ごとに異なるタイプがプルされます。
Kohana3.2ORMを使用してモデルの関係をどのようにレイアウトする必要がありますか。
ユーティリティ
<?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 | |
+---------+--------------+------+-----+---------+----------------+