2016-02-12 87 views
0

我使用的DetailView小部件,我想写自定义函数值,但我不断收到此错误:Yii2用htmlspecialchars()预计参数1是字符串,对象给出

htmlspecialchars() expects parameter 1 to be string, object given 

这是代码:

[ 
       'label' => 'Keys', 
       'value' => function($model, $key, $inde){ 

        if(!empty($model->keys)) 
         return '<strong>User don\'t have any key at the moment.</strong>'; 

        $keys = ''; 
        foreach($model->keys as $key): 

         $keys .= '<strong>' . $key->key . '</strong>'; 

        endforeach; 

        return $keys; 

       } 
      ], 

我在做什么错了?

+0

如果您将''format'=>'raw''添加到您的数组中,会发生什么? –

回答

1

在详细信息查看value不接受匿名函数(不同地尊重grdiView)..在这种情况下,您可以使用调用正常函数来设置相关值..请记住,在DetailView中,您直接工作到$ model而不是在$数据提供程序内容

那么你可以使用一个功能

function myFunction($model, $key, $inde){ 

       if(!empty($model->keys)) 
        return '<strong>User don\'t have any key at the moment.</strong>'; 

       $keys = ''; 
       foreach($model->keys as $key): 

        $keys .= '<strong>' . $key->key . '</strong>'; 

       endforeach; 

       return $keys; 
    } 

或简单的结果赋值给一个变种

,并详细视图属性调用函数或assigne的VAR直接ly

[ 
      'label' => 'Keys', 
      'value' => myFunction($model, $key, $inde), 
相关问题