Label – display field

Utworzenie etykiety do złożonych list

Model/Entity/Project.php

protected function _getLabel()
{
  return $this->number . ' - ' . $this->name;
}

Model/Table/ProjectsTable.php

public function initialize(array $config): void
{
  ...
  $this->setDisplayField('label');
  ...
}

Używanie w kontrolerze

$projects = $this->Projects->find('list')->all();

0235 - Prace budowlane dla klienta ZYX

2 przykład – label (nazwa + cena) z powiązanym modelem (jedn. miary)

Entity

protected function _getLabel()
{
  $label = $this->name ;

   // Dołączono model jms  _fields['jm'] - rozszerz label
   if( isset($this->_fields['jm']) && $this->price ) {
        $label .= ' - '. $this->price." zł/". $this->_fields['jm']->shortname;
      }
  return $label;
}

Controller

$materials = $this->Components->find('list')
        ->contain('Jms')                       // dołączenie modelu
        ->order(['Materials.name'])
        ->all();
<option value="1">Blacha stalowa 5mm - 150.00 zł/mb</option>
<option value="2">Ceownik 20mm x 5mm - 80.00 zł/mb</option>
<option value="3">Śruby m6 - 13.00 zł/op.</option>