CakePHP在两个模型之间进行连接,但不能在其他两个模型之间进行连接
我有四个非常简单的模型。报价、雇主、雇员和响应CakePHP在两个模型之间进行连接,但不能在其他两个模型之间进行连接,cakephp,Cakephp,我有四个非常简单的模型。报价、雇主、雇员和响应 Offer hasOne Employer Employer hasMany Offer Response hasOne Employee Employee hasMany Offer 现在,当我在Offer上创建find()时,它会很好地创建一个JOIN查询并返回雇主详细信息 但当我在响应上执行find()时,它不会尝试检索员工的数据 我检查了很多次代码,去掉了模型中的任何附加属性等,但仍然一无所获。这些模型现在几乎完全相同,它们的SQL表也一
Offer hasOne Employer
Employer hasMany Offer
Response hasOne Employee
Employee hasMany Offer
现在,当我在Offer
上创建find()
时,它会很好地创建一个JOIN查询并返回雇主详细信息
但当我在响应上执行find()
时,它不会尝试检索员工的数据
我检查了很多次代码,去掉了模型中的任何附加属性等,但仍然一无所获。这些模型现在几乎完全相同,它们的SQL表也一样,但响应的行为就像它与员工定义的表没有关系一样
我可能会被困在这个陷阱里吗?我现在准备把这当作一个bug来报告
如果有什么帮助的话,我可以在这里发布完整的(无论如何都是简短的)模型定义。检查模型实例的类
即
如果输出的是AppModel
,那么代码似乎没有被使用的原因是:它没有被使用。在这种情况下,请检查您的模型文件的文件名/位置是否有拼写错误,因为如果您的模型文件不存在,CakePHP将静默地使用AppModel实例。我想知道这个关系是否设置正确;回答:有一名员工,而员工有多份工作?这不应该是Response属于员工吗?
Employee?请发布您的查找代码,以及它所在的模型或控制器,以及递归的当前级别。当然,Response属于员工,只是一个打字错误。牛眼。它确实返回“AppModel”。经过详细的搜索,我发现响应模型文件名中有一个输入错误——“Reponses”。谢谢你的帮助。无论如何,只有当你有意使用它时,这个“假设”功能才是很酷的。如果出现此类输入错误等情况,是否有弹出一些警告的选项?您可能有意在其他用例中使用它-例如,habtm关系的连接模型。在内核中没有什么可以关闭的,如果您愿意,可以使用类似的功能:
debug(get_class($this->Response));