OctoberCMS columns.yaml ЗНАЧЕНИЕ ОТ нескольких полей

Я создал один плагин, используя строитель плагин в OctoberCMS и в котором у меня есть columns.yaml файл.

В поле под названием property_idУ меня есть поле как ЗНАЧЕНИЕ ОТ который просит добавить имя поля моей таблицы, следовательно, я добавил один называется street_number,

Но я хочу объединить несколько полей там. Что-то вроде ниже.

CONCAT(street_number, ' ', address)

Но это не работает. Я также пробовал с другими способами, но это все еще не работает.

Кто-нибудь может подсказать мне, как этого добиться?

Кроме того, было бы хорошо, если бы эти поля были согласованы, если их соответствующие значения существуют в таблице.

Вот так мой columns.yaml файл выглядит так.

columns:
property_id:
label: Property
type: text
searchable: true
sortable: false
relation: Property
valueFrom: street_number
start_datetime:
label: 'Start Date Time'
type: datetime
searchable: true
sortable: true
end_datetime:
label: 'End Date Time'
type: datetime
searchable: true
sortable: true
status:
label: Status
type: number
searchable: true
sortable: true
select: 'CASE WHEN (status =  ''1'' ) THEN ''Active'' ELSE ''Inactive'' END'

Спасибо

0

Решение

Поскольку здесь задействована логика, вы можете просто использовать пользовательский тип столбца, как описано здесь. https://octobercms.com/docs/backend/lists#custom-column-types. Я бы не хотел помещать слишком много логики в файл yaml.

РЕДАКТИРОВАТЬ

ОП добавил пример кода, чтобы показать то, что я упомянул выше в своем комментарии Вот.

1

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

Хорошо, ребята,

Я придумал решение благодаря хорошему ссылка на предложение от Пратюш Пундир выше. Вот что я сделал, чтобы добиться этого.

Обновленный ниже кусок кода в columns.yaml файл.

columns:
property_id:
label: Property
type: property_details
searchable: true
sortable: false
relation: Property

добавленной type: property_details Вот.

Открыл и обновил мой plugin.php файл и добавленные ниже строки.

<?php namespace Technobrave\Homeopenintegration;

use System\Classes\PluginBase;use technobrave\Properties\Models\Property as Property;class Plugin extends PluginBase
{public function registerListColumnTypes()
{

return [
// A local method, i.e $this->evalUppercaseListColumn()
'property_details' => [$this, 'evalPropertyDetailsListColumn'],
];
}public function evalPropertyDetailsListColumn($value, $column, $record)
{
$current_property = Property::where('id', $record->property_id)->first();
return $current_property->lot;

}
}

Спасибо за усилия и помощь.

2

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