我是cakephp的初学者,我试图通过书签应用教程来理解它。
http://book.cakephp.org/3.0/en/quickstart.html
所以这是SQL方案:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
created DATETIME,
modified DATETIME
);
CREATE TABLE bookmarks (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
title VARCHAR(50),
description TEXT,
url TEXT,
created DATETIME,
modified DATETIME,
FOREIGN KEY user_key (user_id) REFERENCES users(id)
);
CREATE TABLE tags (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
created DATETIME,
modified DATETIME,
UNIQUE KEY (title)
);
CREATE TABLE bookmarks_tags (
bookmark_id INT NOT NULL,
tag_id INT NOT NULL,
PRIMARY KEY (bookmark_id, tag_id),
FOREIGN KEY tag_key(tag_id) REFERENCES tags(id),
FOREIGN KEY bookmark_key(bookmark_id) REFERENCES bookmarks(id)
);
所以这就是我所做的"烘焙所有" - >
有人可以告诉我这是如何在内部工作的。这是我第一次使用CakePHP和MVC,我试图了解它的内部工作原理。
答案 0 :(得分:2)
默认情况下是,如果删除主记录,CakePHP将首先从连接表中删除相关记录。这样做是因为在大多数情况下,如果删除主要记录本身,则不关心关联。
您可以通过在关联配置中将dependent
选项设置为false
按照所述here来阻止自动删除联接表记录。