У меня есть индексный указатель, возвращающий таблицу из определенной модели. В этой таблице, показанной в индексном представлении, я намереваюсь отображать значки на основе ввода поля базы данных (например, поле базы данных равно «0», иконка должна быть удалена глификон, когда она «1», она должна быть glyphicon-ок). Каков наилучший подход к реализации идеи MVC и СУХОЙ? Должна ли логика (присвоение значка на основе значения) помещаться в индексную функцию контроллера или лучше иметь логику в соответствующем представлении (или даже в модели)?Значок дисплея, основанный на записи базы данных
0
A
ответ
1
Каков наилучший подход к идее MVC и СУХОЙ?
A helper. Очевидно, не контроллер.
Я написал вспомогательный метод bool() для этой задачи.
/**
* Bool
*
* @param mixed $value
* @param array $options
* @return string
*/
public function bool($value, $options = array()) {
$defaults = array(
'true' => __d('app', 'Yes'),
'false' => __d('app', 'No'),
'escape' => true,
);
$options = Hash::merge($defaults, $options);
$return = $options['false'];
if ($value == true) {
$return = $options['true'];
}
if ($options['escape'] === true) {
return h($return);
}
return $return;
}
Затем использовать:
$this->MyHelper->bool($yourValue, [
'true' => 'glyphicon glyphicon-ok',
'false' => 'glyphicon glyphicon-remove']
);
В зависимости от поставленной задачи может быть лучше, чтобы написать еще один вспомогательный метод, который использует логическое значение(), чтобы сделать чек, но на выходе вся ваша строка, что вы хотите визуализировать. Вы не показали никакого кода, так что это просто догадка.
0
Вы можете сделать это различными способами. Как
- Сохранение glyphicon иконки классов в базе данных
field
- Набор glyphicon классов в массив и отображать его с условиями
- условия Set, При отображении данных в View [HTML]
ПРИМЕР [В просмотре]
$data = array(/*YOUR QUERY DATA IS HERE*/);
foreach ($data as $key => $value) { /*Check your Database field is `0` or `1`*/
$icon = 'glyphicon glyphicon-remove';
if ($value->YOUR_FIELD==1) { /*Check with your proper field name*/
$icon = 'glyphicon glyphicon-ok'
}
echo "<span class='{$icon}'></span>";
}