cakephp: plumSearch - Changing filter's label in parameters

时间:2018-07-03 17:23:57

标签: cakephp plugins cakephp-3.x

Using PlumSearch plugin, it is mentioned in its documentation that we can modify 'label':

formConfig: Contains Form::input $options settings like class, input type, label name...

In my controller/initialize(), I need to change the label of some fields ("IP Address" instead of "Ip Adress", "Status" instead of "Asset Status"):

public function initialize()
{
parent::initialize();

$parameters = [
    ['name' => 'serial_number', 'className' => 'Input'],
    ['name' => 'model_number', 'className' => 'Input'],
    ['name' => 'ip_address', 'label' => 'IP Address', 'className' => 'Input'],
];
if ($this->request->param('action') == 'reportFacility') {
    $statuses = $this->AssetsAssignations->AssetStatuses->find('list')->order(['name' => 'asc']);
    $this->set(compact('asset_statuses'));
    $parameters = [
        ['name' => 'asset_status_id', 'className' => 'Select', 'label' => 'Status',
            'finder' => $statuses
        ],
    ];
}   elseif ($this->request->param('action') == 'reportClient') {
    $clients = $this->AssetsAssignations->Clients->find('list')->order(['last_name' => 'asc', 'first_name' => 'asc']);
    $this->set(compact('clients'));
    $parameters = [
        ['name' => 'client_id', 'className' => 'Select', 'label' => 'Client',
            'finder' => $clients
        ],
    ];
} elseif ($this->request->param('action') == 'reportRoom') {
    $rooms = $this->AssetsAssignations->Rooms->find('list')->order(['name' => 'asc']);
    $this->set(compact('rooms'));
    $parameters = [
        ['name' => 'room_id', 'className' => 'Select', 'label' => 'Room',
            'finder' => $rooms
        ],
    ];
}
$this->loadComponent('PlumSearch.Filter', ['parameters' => $parameters]);

}`

The code above did not work for labels.

I was told to use the following code:

 $inputOptions = [
        'search' => [
            'placeholder' => __('Type to search...'),
            'class' => 'form-control',
            'label' => 'Search'
        ]
    ];
    $this->set(compact('inputOptions'));

but I failed to determine where and how in my code.

Any help please ?

1 个答案:

答案 0 :(得分:1)

只需要将它添加到$parameters数组中

$parameters = [
    /* other fields here */
    [
        'name' => 'ip_address', 
        'className' => 'Input', 
        'formConfig' => ['label' => 'IP Address']
    ],
];