0

我正在为我的网站使用 cakephp。我在数据库中存储了多个块,并尝试使用以下语法访问代码。

foreach($blocks as $block){
    if($block['Block']['position'] == 'left'){
        $str = $block['Block']['value'];
        eval("\"echo $str\";");
     }
}

我得到了这个错误;

: Undefined property: View::$requestAction [APP\views\layouts\home.ctp(60) : eval()'d code

您的帮助将不胜感激。

谢谢,

4

3 回答 3

0

同意-尽管您可以得到更多花哨/优化并使用 set::extract ,例如:

<?php
echo implode("",set::extract($blocks,"/Block[position=left]/value"));
// or
echo current(set::extract($blocks,"/Block[position=left]/value"));
?>

http://book.cakephp.org/view/1501/extract

set::extract 通常比 foreach 循环更快,并且语法变得简洁单行

于 2010-06-09T16:52:51.907 回答
0

你为什么要使用eval?尝试这个:

foreach($blocks as $block){ 
    if($block['Block']['position'] == 'left'){ 
        $str = $block['Block']['value']; 
        echo htmlentities($str);
     } 
} 
于 2010-05-31T01:50:43.143 回答
0

我已将此代码用于主题中不同位置的动态块。我已经使用上面提到的代码块解决了我的问题。

foreach($blocks as $block){
    if($block['Block']['position'] == 'left'){
        $str = $block['Block']['value'];
        echo $this->requestAction($str);
     }
}
于 2010-06-01T11:28:14.477 回答