在阅读了食谱和各种问答后,我在概念上对模型关联及其作用仍有点困惑 . 而且我希望有人可以帮助我理顺这一点 . 所以这里是我的问题:
据我所知,模型关联有助于阅读/查找相关数据 . 因此,如果我加载用户,那么该用户的所有帖子也将被加载?但CakePHP是否真的不会以某种方式自动完成它?手动我的意思是在这个答案中明确定义mentor_id:CakePHP model associations table w/data and new table
为什么有必要在保存时“提及”两种型号? $ this-> Mentor-> Student-> save($ student)示例 . 这是一种跟踪双向关联的方法吗?
2 回答
是的,CakePHP将加载所有相关数据,除非您使用模型或更改您正在使用的模型上的递归属性 .
您必须指定用户的ID,然后执行保存,当您从具有指定ID的模型中保存时,它将处理其余的ID . 例如,假设您有一个Post和User模型,并且用户使用Auth登录:
因此,提及两种模型并不是必需的,如果你提到两种模式,你可以做以下,再次以帖子和用户为例 .
这与前一种情况相同,因为您正在使用用户数据加载用户模型并为该用户保存帖子 .
我假设您正在使用belongsTo关系,但我认为它可以是在cookbook上描述的任何类型
是的,如果您设置了正确的关系(belongsTo,hasA等),这将由Cake自动处理
我相信这是用saveAll, saveAssociated, etc.方法处理的,但我还没有遇到使用它的场景
这是因为你_1182422的依赖关系(再次取决于你如何 Build 关系),所以你需要明确说出来 . 其他方法是导入StudenController(根据您的示例)和(after constructing the classes)调用save方法
$studentController->Student->save($student)
希望这可以帮助