2017-06-02 69 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

相關問題