Как вызвать массив из модели для частичного представления в CHtml: encode

У меня есть три константы,

const STATUS_PENDING=1;
const STATUS_APPROVED=2;
const STATUS_DENY=3;

для них у меня есть этот метод,

public function getLeaveStatus()
{
return array(
self::STATUS_APPROVED=>'Approved',
self::STATUS_PENDING=>'Pending',
self::STATUS_DENY=>'Denied',
);
}

Теперь я хочу имена отображаться в виде вместо цифр,

<?php echo CHtml::encode($leave->status);?>

который отображает числа, и при этом,

<?php echo CHtml::encode($leave->getLeaveStatus());?>

Я получаю

htmlspecialchars() expects parameter 1 to be string, array given

Итак, как принять массив здесь, или, пожалуйста, предложите другой подход. Благодарю.

0

Решение

Вы возвращаете массив, если хотите получить статусное имя $leave->status ты должен использовать это

public function getLeaveStatus($status)
{
$statusNames = array(
self::STATUS_APPROVED=>'Approved',
self::STATUS_PENDING=>'Pending',
self::STATUS_DENY=>'Denied',
);

return  $statusNames[$status];
}

конец эха это:

echo CHtml::encode($leave->getLeaveStatus($leave->status));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]