1

私のDBには、jobsテーブル、detailsテーブル、およびテーブルがありemployersます。

jobsdetailsは 1 対 1 の関係にあり、employersdetailsは 1 対多の関係にあります。すべての仕事に詳細があるわけではありませんが、すべての詳細に 1 つの雇用主がいます。

idからフィールドを削除し、そのフィールドを主キーとしてdetails使用するのが理にかなっていると思いました。job_idDB エンジンは InnoDB であるため、主キーの結合は非常に高速である必要があります。

したがって、テーブルを変更し、モデルに主キー宣言を追加した後でも、details経由で詳細にアクセスできます$job->detail。ただし、このコード行:

$employer = $job->detail->employer->name;

エラーが発生します:

未定義のインデックス: detail_job_id

カスタム主キー以外は何も変更していないので、これが問題の原因であることはわかっていますが、これまでカスタム主キーを使用したことがないため、エラーの原因や修正する必要があるものはわかりません。

カスタム主キーで Kohana2 ORM を使用した人はいますか?

4

1 に答える 1

1

AFAIR、v2.3.4では、$foreign_keyプロパティを使用して関連モデルのFKを定義できます。何かのようなものprotected $foreign_key = array('employer' => 'detail_id');

于 2011-05-23T05:58:09.783 に答える