я столкнулся с проблемой, и это действительно лишь незначительные неудобства, но ...Laravel - срывать мутировали атрибут
В основном то, что мне нужно, это ассоциативный массив для выбора окна. Обычно это достигается с помощью функции pluck()
.
Проблема заключается в том, что атрибут, который я хочу использовать как «текст», фактически не существует в базе данных, это мутатор, который объединяет два поля в один.
public function getNameAttribute() {
return $this->first_name . ' ' . $this->last_name;
}
Я знаю, что добавление 'name'
поля в $appends
массив на модели будет включать это поле при литье модели в массив, однако это не похоже на работу с pluck()
Есть простой способ для достижения желаемого я хочу? Функция или декларация отсутствует? Что-нибудь более красноречивое, чем ручная петля над коллекцией и создание моего собственного ассоциированного массива?
Обновление Я - идиот. Я передавал массив, чтобы вырвать вместо двух параметров. Очевидно, что pluck использует атрибут $appends
. Обратите внимание, что это работает только при работе с коллекциями $collection->pluck('mutatedValue', 'key');
НЕ построитель запросов $queryBuilder->pluck('mutatedValue', 'id');
Спасибо за помощь, ребята.
Оказывается, мне не нужно было это делать в конце концов, но +1 до сих пор для немного элегантного ответа. –