2017-06-02 65 views
0

这里面的细节视图yii2详细信息视图“用htmlspecialchars()预计参数1是字符串

    [ 
        'label'=>'Unit ID', 
        'value'=>function($model){ 
          $data = json_decode($model->unit_id); 
           $number = count($data); 

           for($i=0; $i<$number; $i++){ 
           return substr(implode(", ", $data), 0); 
             } 
          } 
       ], 

我的观点文件,但它一直给我的错误htmlspecialchars() expects parameter 1 to be string

然后我试图把它叫为功能我在模型文件创建

public function unit($model) 
    { 
     $data = json_decode($model->unit_id); 
       $number = count($data); 

       for($i=0; $i<$number; $i++){ 
      return substr(implode(", ", $data), 0); 
       } 
    } 

然后我查看文件

[ 
     'label'=>'Unit Id', 
      'value'=>unit($model), 
], 

但我得到错误call to undefined function

任何人都可以帮忙吗?谢谢

+2

如果你立即返回内容,'for'循环有什么意义? – Bizley

回答

0

我解决了它。这是使用调用函数方法的解决方案。

function unit($model) 
    { 
     $data = json_decode($model->unit_id); 
       $number = count($data); 

       for($i=0; $i<$number; $i++){ 
      return substr(implode(", ", $data), 0); 
       } 
    } 

鉴于文件

[ 
     'label'=>'Unit Id', 
      'value'=>$model->unit($model), 
], 
+1

你知道吗,你不必在这里通过'$ model'?在函数中使用'$ this'。然后你可以将函数重命名为'function getUnit()',在'DetailView'中只需使用'$ model-> unit'。无论如何,用Yii版本检查答案。 – Yupik

+2

@ron你的'for'循环仍然毫无意义。 – Bizley

0

检查Yii2版本,propably你有< 2.0.11,因为value可以为封闭自2.0.11版本中提供。 Proof here

相关问题