当我将本地工作副本(Windows 7,WAMP,Apache 2.2,MySQL 5.1,PHP 5.3,CakePHP 2.4)连接到本地MySQL数据库时,它给出了以下错误:
Notice (8): Undefined index: Asset [APP\Controller\AssetsController.php, line 241]
请注意,连接到远程RHEL MySQL 5.1
服务器时,问题是不。
有问题的代码:
Line 241: 'EnvironmentDeploymentStatus.asset_id'=>$conf['Asset']['asset_id'],
连接到RHEL MySQL 5.1
后,执行var_dump($conf)
,我就会知道:
array (size=3)
'Asset' =>
array (size=6)
当连接到localhost Windows MySQL 5.1
时,执行var_dump($conf)
,我会得到这个(请注意数组键中的大小写更改):
array (size=3)
'asset' =>
array (size=6)
填充$conf
的视图包含:
...
from
(((((((`assets` `asset`
...
我在本地MySQL的my.ini
文件中添加了以下配置:
lower_case_table_names=2
这些表格已经是小写的(符合CakePHP标准),但我认为这对我所做的事情没有任何影响。
答案 0 :(得分:0)
lower_case_table_names = 2
可能是你的问题。它在文档中说明
此选项也适用于数据库名称和表别名。
(强调补充)
MySQL Doc on lower_case_table_names
这意味着MySQL正在将Cake提供的表别名更改为小写版本。
解决方案是将此值设置回建议值1。