我有兩個表MySQL的:加入/關於兩個表
1. Airline -id(primary), name
2. Form - id(primary), operator, other unwanted fields
我想涉及到Airline.name Form.operator。是否有可能,因爲Form.operator不是主鍵,如果是的話給我查詢。
能有一個人還指導我如何將CakePHP的模型關係,在這種情況下
我有兩個表MySQL的:加入/關於兩個表
1. Airline -id(primary), name
2. Form - id(primary), operator, other unwanted fields
我想涉及到Airline.name Form.operator。是否有可能,因爲Form.operator不是主鍵,如果是的話給我查詢。
能有一個人還指導我如何將CakePHP的模型關係,在這種情況下
var $hasOne = array(
'airline' => array(
'className' => 'airline',
'foreignKey' => false,
'conditions' => array(
'`form`.`yourfield` = `airline`.`yourfield`'
)
)
}
這應該有效。只需更換您的字段
select * from `airline`, `form` where `airline.id`=`form.operator`
我勸因爲是它在系統中其他地方使用您不使用名稱表格,但是試試這個(或類似的東西),並宣讀http://book.cakephp.org/view/1039/Associations-Linking-Models-Together
在應用程序/模型/ airline.php:
<?php
class Airline extends AppModel
{
var $name = 'Airline';
var $hasOne = array(
'Form' => array(
'className' => 'Form',
'foreignKey' => 'operator')
);
// other stuff
// ... //
?>
在應用程序/模型/ form.php的:
<?php
class Form extends AppModel
{
var $name = 'Form';
var $belongsTo = array(
'Airline' => array(
'className' => 'Airline',
'foreignKey' => 'operator')
)
;
// other stuff
// ... //
?>
感謝,但航空公司。操作員不是主鍵 – aWebDeveloper 2010-08-25 11:36:50
你誤會 - 這裏'運營商'被定義爲關係中的外鍵。 Cake知道在哪個表上找到它作爲$ hasOne或$ belongsTo語句的結果,並且知道將它匹配到Airline表上的'id'(除非你已經告訴Cake使用不同的字段)。 – Leo 2010-08-25 11:56:06
恢復到純sql應該被認爲是最後一次重新配置,因爲它有各種缺點,如:丟失db獨立性,引入安全風險。 親切的問候 – benjamin 2010-08-25 09:23:10