我在CakePHP中尝试了一个示例项目 . 它取自cakePHP文档 . 它共有4个表,其中两个列在这里 .
CREATE TABLE users (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(255) NOT NULL UNIQUE,
password CHAR(40) NOT NULL,
group_id INT(11) NOT NULL,
created DATETIME,
modified DATETIME
);
CREATE TABLE posts (
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
user_id INT(11) NOT NULL,
title VARCHAR(255) NOT NULL,
body TEXT,
created DATETIME,
modified DATETIME
);
如您所见,users表中的id作为 user_id
形式的外键添加到posts表中 . 但是在样本中没有定义关系 . 我的意思是通常我们会通过添加约束(在我的情况下使用phpMyAdmin的Relation View)将 user_id
显式定义为外键 . 但这并没有在这里完成,或者我们没有被指示这样做 . 当使用 Cake Bake console
来烘焙我们的 Models
时,我们是否需要这个外键约束或者cakephp会自动将它们弄清楚吗?
1 回答
Convention over configuration
Cakephp会自动为您计算出来,但您必须遵循naming conventions