MyHtmlHelper
public function url($url = null, $full = false) {
if(empty($url['lang']) && isset($this->params['lang'])) {
$url['lang'] = $this->params['lang'];
}
return parent::url($url, $full);
}
AppHelper
public function url($url = null, $full = false) {
if (empty($url['lang'])) {
$url['lang'] = $this->params['lang'];
}
return parent::url($url, $full);
}
我跑的时候。应用警告cakephp非法抵消lang .....
我该如何解决这些错误
答案 0 :(得分:0)
检查您测试的值是否先实际设置。
改变这个:
if(empty($url['lang']) && isset($this->params['lang'])) {
$url['lang'] = $this->params['lang'];
}
要:
if ( ( ! isset( $url['lang'] ) || empty( $url['lang'] ) ) && isset( $this->params['lang'] ) ) {
$url['lang'] = $this->params['lang'];
}
我不确定我是否以正确的方式解决了你想要实现的目标。在我的示例中,我要检查$ url [' lang']的值是否未设置或为空。可能是您要检查它是否已设置且为空。
在AppHelper上使用相同的技巧来解决您的问题。
答案 1 :(得分:0)
您需要在验证中添加is_array($ url)。 或者你可能会得到“非法字符串偏移”语言'“
function url($url = null, $full = false) {
if(!isset($url['language']) && is_array($url) && isset($this->params['language']))
{
$url['language'] = $this->params['language'];
}
return parent::url($url, $full);
}