Size: a a a

2020 September 02

v

vladimir in OctoberCMS
я только в склепе убрался...
источник

IC

Igor Chishkala in OctoberCMS
))
источник

IC

Igor Chishkala in OctoberCMS
Konstantin
Всем привет! Давно хотел спросить, как вы отображаете на бэке в списках, то что редачится в форме через тип dropdown  из get[Type]Options()… если показывать как текст, то ключ выдает что не удивительно…
нужно писать свой кастомный стобец для этого? что я собсвтенно и делал.. но может есть нативочка
@LeMaX10 вот )
источник

v

vladimir in OctoberCMS
Если это зависимость через type relation, если нет, то делать через _partial.
Мы в свою очередь делали свой виджет который используем в некоторых проектах. Он по настройкам обращается к get{Type}Options и достает нужный элемент.
источник

v

vladimir in OctoberCMS
По хорошему идеально делать через ацессор.
Так как по факту get{type}Options является коллекцией значений и чтобы их не дублировать везде по коду, можно реализовать ацессор а-ля
getStatusNameAttribute(): string 
{
   return $this->getStatusOptions()[$this->status];
}


И по коду везде где нужно имя статуса уже запрашивать как $model->status_name
источник

v

vladimir in OctoberCMS
Однако, я не люблю такие методы, когда все значения пишутся в нем)). Все перечисления, если это не зависимость, я кладу в enum, для этого есть свой "пакетик", с трейтом под локализованные списки: https://github.com/LeMaX10/laravel-enums

По коду можно использовать а-ля $this->status->getTransValue()
А реализовать getStatusOptions() можно таким образом, подключив трейт EnumList
getStatusOptions(): array 
{
   return $this->getEnumTranslatableList($this->getEnumsAttributes()['status'])
}


Он сам построит список, а для вывода в списках можно использовать преобразование __toString в объекте енума приводя его к локализации.
источник

IC

Igor Chishkala in OctoberCMS
я же говорил, верховный вампир 🤣🤣🤣
источник

E

Evgeny in OctoberCMS
Sergei Toroptsev
и один плагин маст хэв для всех сайтов вообще
О каких плагинах идёт речь?
источник

K

Konstantin in OctoberCMS
vladimir
Однако, я не люблю такие методы, когда все значения пишутся в нем)). Все перечисления, если это не зависимость, я кладу в enum, для этого есть свой "пакетик", с трейтом под локализованные списки: https://github.com/LeMaX10/laravel-enums

По коду можно использовать а-ля $this->status->getTransValue()
А реализовать getStatusOptions() можно таким образом, подключив трейт EnumList
getStatusOptions(): array 
{
   return $this->getEnumTranslatableList($this->getEnumsAttributes()['status'])
}


Он сам построит список, а для вывода в списках можно использовать преобразование __toString в объекте енума приводя его к локализации.
Родной, ты капец всё усложняешь😂😂
Я просто хотел узнать есть ли нативный октябрьский столбец для показывания в списках того что выбирается из опшнсов))
Самые простые пути  делать через паршиал, чуть сложнее через свой кастмный стобец)
источник

v

vladimir in OctoberCMS
Konstantin
Родной, ты капец всё усложняешь😂😂
Я просто хотел узнать есть ли нативный октябрьский столбец для показывания в списках того что выбирается из опшнсов))
Самые простые пути  делать через паршиал, чуть сложнее через свой кастмный стобец)
Самый простой через ацессор )
источник

v

vladimir in OctoberCMS
я лишь рассказал как я сам делаю обычно )
источник

K

Konstantin in OctoberCMS
vladimir
Самый простой через ацессор )
ну это надо писать код каждый раз для каждого опшнса, а если столбец замутить то можно для всех использовать)
источник

v

vladimir in OctoberCMS
Konstantin
ну это надо писать код каждый раз для каждого опшнса, а если столбец замутить то можно для всех использовать)
ну тебе в любом случае где-то еще кроме списка в админке необходимо выводить статус (например)?
источник

v

vladimir in OctoberCMS
Если только в админке - паршл, если еще где-то, то лучше конечно ацессор.
источник

v

vladimir in OctoberCMS
Суть то в том, чтобы не дублировать одно и тоже везде по проекту? А значения списка тебе врядли только в методе options'a нужны?
Однако если только там, тогда - да, проще паршл )
источник

K

Konstantin in OctoberCMS
vladimir
Суть то в том, чтобы не дублировать одно и тоже везде по проекту? А значения списка тебе врядли только в методе options'a нужны?
Однако если только там, тогда - да, проще паршл )
+ Ладушки)) Спасибо большое!
источник

A

Axenia in OctoberCMS
streeboga (705.41) увеличил карму LeMaX10 (1708.95)
источник

v

vladimir in OctoberCMS
Konstantin
+ Ладушки)) Спасибо большое!
Всегда пожалуйста) я просто уже давно в моделях не пишу перечисления))) либо Enum заготовленный, либо справочник внешний по зависимости.
источник

K

Konstantin in OctoberCMS
vladimir
Всегда пожалуйста) я просто уже давно в моделях не пишу перечисления))) либо Enum заготовленный, либо справочник внешний по зависимости.
Ну кстати! вот надо тоже этот паттерн переосмыслить
источник

v

vladimir in OctoberCMS
всегда радует, когда в коде можно сделать либо:
$model->status->getValue()

Либо сравнить:
$model->status->equals(StatusEnum::PROCCESS())
источник