2017-01-18 64 views
1

時,我要表現出的DetailView用戶的詳細信息比它拋出:機能的研究()中的DetailView不工作yii2

用htmlspecialchars()預計參數1是字符串,對象給出

以下是我的DetailView代碼:

view.php

 <?= DetailView::widget([ 
       'model' => $model, 
       'attributes' => [ 
        'userID', 
        'userEmail:email', 
        'userName', 
        'userMobile', 
        'userBirthDate', 
        'userGender', 
        [ 
         'attribute' => 'interestName', 
         'format' => 'raw', 
         'label' => 'Interest', 
         'value' => $model->getUserinterest(), 
        ], 
         'userStatus', 
         'userType', 
       ], 
     ]); 

?> 

function getUserinterest() { 
      foreach ($model->userinterest as $userinterest) { 
       $interestNames[] = $userinterest->interestName; 
      } 
     return implode("\n", $interestNames); 
    } 
+0

什麼是你Yii2版本? – Yupik

+0

Yii2版本是:2.0.10 – Akkie

回答

-2

按照如下最後的答案:

view.php

<?= DetailView::widget([ 
     'model' => $model, 
     'attributes' => [ 
      'userID', 
      'userEmail:email', 
      'userName', 
      'userMobile', 
      'userBirthDate', 
      'userGender', 
      [ 
       'attribute' => 'interestName', 
       'format' => 'raw', 
       'label' => 'Interest', 
       'value' => $model->getviewinterest(), 
      ], 
      'userStatus', 
      'userType', 
     ], 
    ]); 

?> 

Users.php(型號)

public function getviewinterest() 
    { 
     foreach ($this->userinterest as $userinterest) 
      { 
       $interestNames[] = $userinterest->interestName; 

      } 

      if(!empty($interestNames)){ 
       return implode("<br/>", $interestNames); 
      }else{ 
       return "(not set)"; 
      } 
    } 
+0

@Yupik按照最終解決方案 – Akkie

+0

okk正如你所說。按照您的方法以及我的方法,它工作得很好。 – Akkie

+0

請不要使用框架,如果你的方法對你來說「很好」。如何在您的方法中額外的SQL查詢?記憶如何? 16行無用代碼怎麼樣? U爲代碼行獲得報酬? – Yupik

1

小號ince版本2.0.11 value可定義爲閉包。將Yii版本升級到開發者版本2.0.11+並且它將工作。

+0

它還不是一個穩定的版本。我已經在github上驗證了它,已完成90%的工作。 [鏈接](https://github.com/yiisoft/yii2/milestone/20) – Akkie

+0

這是真的,這就是爲什麼我說「開發人員版」:) – Yupik

+0

有沒有其他方式? – Akkie