Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Accessors — замечательная штука, на мой взгляд. Но как использовать для одного и того же поля разные accessors? Реальный пример: в админке перечень характеристик задается текстовым полем (textarea) через запятую, хранится в базе строкой. Если хочу отредактировать это поле — то просто редактирую эту строку.
Но на публичной странице я хочу работать с этим списком как с массивом. В этом классно помогает Accessor:
public function getFeaturesAttribute($value)
{
$arr = explode(',', $value);
foreach($arr as $k => $v){
$arr[$k] = trim($v); // здесь было еще немного логики; убрал, чтобы сосредоточиться на главной задаче
}
return $arr;
}
Все здорово, на публичной странице во View могу перебирать этот список с помощью foreach. Но в админке то теперь тоже выводится массив, а нужна строка. Есть ли способ задать разные Accessors? Или для одного вызова просто игнорировать Accessors?
Задача конечно решается опять же перебором массива в админке, но решение не элегантное.
Не в сети
Благодарю, такой подход сработал.
Страницы 1