OctoberCMS columns.yaml VALUE FROM 有多个字段
OctoberCMS columns.yaml VALUE FROM with multiple fields
我在 OctoberCMS 中使用 Builder 插件创建了一个插件,其中我有 columns.yaml 文件。
在一个名为 property_id
的字段中,我有一个字段为 VALUE FROM,它要求添加我的 table 的字段名称,因此我有添加了一个名为 street_number
.
但我想在那里连接多个字段。如下所示。
CONCAT(street_number, ' ', address)
但这不起作用。我也尝试过其他方法,但还是不行。
有人可以指导我如何完成这个吗?
此外,如果这些字段各自的值存在于 table 中,那么如果这些字段得到 concat 就更好了。
这就是我的 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'
谢谢
由于此处涉及逻辑,您可能只想使用此处详述的自定义列类型 https://octobercms.com/docs/backend/lists#custom-column-types。我不想在 yaml 文件中放入太多逻辑。
编辑
OP 添加了一些示例代码来准确显示我上面在他的评论中提到的内容 。
好的伙计们,
感谢上面的 by 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;
}
}
感谢您的努力和帮助。
我在 OctoberCMS 中使用 Builder 插件创建了一个插件,其中我有 columns.yaml 文件。
在一个名为 property_id
的字段中,我有一个字段为 VALUE FROM,它要求添加我的 table 的字段名称,因此我有添加了一个名为 street_number
.
但我想在那里连接多个字段。如下所示。
CONCAT(street_number, ' ', address)
但这不起作用。我也尝试过其他方法,但还是不行。
有人可以指导我如何完成这个吗?
此外,如果这些字段各自的值存在于 table 中,那么如果这些字段得到 concat 就更好了。
这就是我的 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'
谢谢
由于此处涉及逻辑,您可能只想使用此处详述的自定义列类型 https://octobercms.com/docs/backend/lists#custom-column-types。我不想在 yaml 文件中放入太多逻辑。
编辑
OP 添加了一些示例代码来准确显示我上面在他的评论中提到的内容
好的伙计们,
感谢上面的
更新了 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;
}
}
感谢您的努力和帮助。