Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use a custom format for multi-column display fields?

Is anyone aware of a way of expanding the 'normal' uses of this (it's id by default and easily changed to field1)? I have one displayField sets follows:

$this->displayField(['name', 'desc']);

Which displays as Name; Description when called in a template file. I know it's a fudge, but it there a way I can manipulate this to have it display Name - Description for example, just by using the displayField?

like image 540
pmelon Avatar asked Jan 06 '23 17:01

pmelon


1 Answers

Use a virtual field, and specify that to be used as display field instead of using multiple columns, something along the lines of

// ...

class YourEntity extends Entity
{
    // ...

    protected function _getNameDesc()
    {
        return
            $this->_properties['name'] .
            ' - ' .
            $this->_properties['desc'];
    }
}
// ...

class YourTable extends Table
{
    // ...

    public function initialize(array $config)
    {
        $this->displayField('name_desc');

        // ...
    }
}

See also

  • Cookbook > Database Access & ORM > Entites > Creating Virtual Fields
like image 142
ndm Avatar answered Jan 31 '23 02:01

ndm