0

我有一个小问题,我无法弄清楚,但应该很简单。
我的 cakePHP (1.3) 应用程序中有以下模型结构:

ProspectiveQuote [hasMany] QuoteUnit [belongsTo] Unit

但在我的 ProspectiveQuotesController 中:

$this->ProspectiveQuote->QuoteUnit->Unit->find('list');

给我以下错误:

Undefined property: AppModel::$Unit

当然,它不应该查看 AppModel,而应该查看 QuoteUnit。
如果我这样做$this->ProspectiveQuote->QuoteUnit->find('all'),它似乎会得到结果(尽管没有任何相关的模型数据......)所以它显然发现 QuoteUnit 足够好,并且我已经仔细检查了它与 Unit 的关系,一切看起来都很好......

似乎是一个足够简单的问题。从我可以看到有这个问题的人通常有他们的模型名称错误(或复数),但这里不是这种情况......
我做错了什么?

4

2 回答 2

2

我想说仔细检查模型关联的语法以确保它们是正确的。或者备份它们,并烘烤一些新模型进行测试,以确保它符合您的期望。

Another great thing is to grab the DebugKit http://www.ohloh.net/p/cakephp-debugkit Which will help you to see your variables and your sql queries.

As mentioned in Leo's comment I would try and avoid uses() as it puts, or did put in 1.2 a bit of a big overhead onto your stack.

于 2010-07-13T08:56:51.783 回答
0

var $uses = array('ProspectiveQuote','QuoteUnit','Unit');在你的控制器里设置了吗?(尽管有更有效的方法) - 见http://book.cakephp.org/2.0/en/controllers.html#controller-attributes

如果您这样做,您可以访问您的关联模型,例如:

$this->Unit->find('list');

或者

$this->ProspectiveQuote->QuoteUnit->Unit->find('list');

我知道我更喜欢哪个。

于 2010-07-13T08:37:49.637 回答