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>