我刚刚将开发箱升级到OSX Lion,它有php 5.3.6(来自Snow Leopard)。
现在我用 Yii 制作的网站坏了。我如何知道哪些代码现在坏了,而不用逐一找出它们?为什么下面的代码坏了?我可以在 php.ini 文件中打开某些东西来克服这些问题吗?我需要重新开始工作,但不想直接回到 Snow Leopard 来做这件事。非常感谢帮助/指导。
以下是一些下列错误:
使用未定义的常量样式 - 假定为“样式”
'htmlOptions'=>array(style=>'cursor: pointer;'),
通过包含“style”来修复
'htmlOptions'=>array('style'=>'cursor: pointer;'),
尝试获取非对象(在 CJuiTabs 内)的属性
'Title' =>$this->renderPartial("_details", array('model' => $model), $this),
不知道如何修复这个问题
使用未定义的常数 Y - 假定 'Y' (在 CGridView 数据提供程序中)
$dataProvider =
new CActiveDataProvider('Bus', array(
'criteria'=>array(
'with' => array(
'address' => array(
'on'=>'busAddresses.Id='.$model->Id.'
AND busAddresses.IsPhysical="'.Y.'"',
不知道如何修复这个问题
答案1
由于您在其他地方暗示您收到的错误消息比您发布的消息更多,所以我假设您未发布的错误之一是这样的:
警告:无法修改标头信息 - 标头已发送
由于您看到的所有这些消息的根本原因在新版本的 PHP 下没有任何不同,因此配置设置可能是造成这种差异的原因。特别是,该display_errors
设置仅控制是否将所有错误、警告和通知的消息打印到屏幕上。
Apple 的默认 php.ini 文件将 display_errors 设置为 Off,但您需要将 /etc/php.ini.default 移动到 /etc/php.ini 才能使该文件生效。/etc/php.ini 不会在 OS X 升级中保留,因此丢失此设置是有道理的。
答案2
AND busAddresses.IsPhysical="'.Y.'"',
Y
在您的情况下是一个字符串,因此将其用作字符串:
AND busAddresses.IsPhysical="Y"',