2017-01-18 6 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

Пожалуйста, не используйте фреймворк, если ваш метод «отлично» для u. Как насчет дополнительных запросов SQL в вашем методе? Как насчет памяти? Как насчет 16 строк бесполезного кода? U получает оплату за строки кода? – Yupik

1

S Ince версии 2.0.11 value можно определить как замыкание. Обновите версию Yii до версии разработчика версии 2.0.11+, и она будет работать.

+0

Это еще не стабильная версия. Я проверил его на github. 90% работы было сделано для выпуска. [link] (https://github.com/yiisoft/yii2/milestone/20) – Akkie

+0

Это правда, вот почему я сказал «версия разработчика» :) – Yupik

+0

Есть ли другой способ? – Akkie

 Смежные вопросы

  • Нет связанных вопросов^_^