List cakephp3中用于表单选择的静态数组

List cakephp3中用于表单选择的静态数组,list,models,behavior,cakephp-3.4,List,Models,Behavior,Cakephp 3.4,我刚把一个v1.3版的网站升级到v3版,它的问题非常严重,开发人员周末不在,我正在努力修复 因此,在我的v1.3站点和v2站点中,我都能够针对模型声明一个数组,例如我的个人模型可能有 $salutation = array('Dr', 'Mr', Ms'); 然后,如果我的订单控制器正在创建表单并捕获新用户的详细信息,我可以调用 $this->set('salutation', $this->Order->Person->salutation); 我的观点应该是表单的

我刚把一个v1.3版的网站升级到v3版,它的问题非常严重,开发人员周末不在,我正在努力修复

因此,在我的v1.3站点和v2站点中,我都能够针对模型声明一个数组,例如我的个人模型可能有

$salutation = array('Dr', 'Mr', Ms');
然后,如果我的订单控制器正在创建表单并捕获新用户的详细信息,我可以调用

$this->set('salutation', $this->Order->Person->salutation);
我的观点应该是表单的正确列表。这就像是一种享受,我广泛使用这种技术

然而,在v3中,这似乎不是做事情的方式,因此我创建了一个名为Listsbehavior的行为,并创建了一个测试示例,其中设置了默认列表,并调用了它,但出现了一个错误

Error: Call to a member function setSalutation() on boolean 

关于如何解开我的旧策略并让新策略发挥作用,有什么提示吗?

型号名称现在是复数而不是单数。我相信我会在某个阶段找出原因,但我需要做的只是在调用中添加一个“s”。

我不明白为什么声明和访问属性不再有效。。。您可能需要提供更多的上下文,尤其是关于表单的上下文。“调用成员函数…基于布尔值”错误意味着您正在访问的属性(分别是您尝试加载的类)无法访问:。要获得更具体的帮助,还需要更多的上下文。您需要使用stacktrace显示当前试图使其工作的代码和相关错误。声明你有一个1.3版本的应用程序可以运行,升级后你在boolean上调用了一个成员函数setValutation(),这只表明它现在不工作了,但没有提供太多信息来帮助读者指出该怎么做
$this->Order->Person
可能是
false
,因为
$this->Order
不是您期望的类的实例-1.显然我所要做的就是把模特的名字改成复数!