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

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

В поле под названием property_id, У меня есть поле VALUE FROM, которое просит добавить имя поля моей таблицы, следовательно, я добавил поле с именем as 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'

Спасибо

2 ответа

Решение

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

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

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

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

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

Обновленный ниже кусок кода в файле 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;

    }
}

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

Другие вопросы по тегам