在 CakePHP 3 的 table 对象中将关联的 table 列显示为 DisplayField

Show associated table column as DisplayField in table object in CakePHP 3

我有两个表clientsusersusers属于clients。在 UsersTable.php 我想设置 $ this-> setDisplayField ('Clients.name'); 但它不起作用。有什么方法可以做到这一点?

您应该尝试不按类名设置显示字段,而应按包含实体的名称设置显示字段:

$this->setDisplayField('client.name');

当然在这种情况下,您应该在查询中包含 Clients 模型。

$result = $this->Users->find('list')->contain('Clients');

在更深层次的关系中也是可能的。

// model
$this->setDisplayField('client.address.street');


//query 
$result = $this->Users->find('list')->contain('Clients.Addresses');

我只在belongsTo关系中测试过。