2016-02-12 92 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), 
相關問題