【问题标题】:CakePHP 2.x fields list shows list of id's instead of valuesCakePHP 2.x 字段列表显示 id 列表而不是值列表
【发布时间】:2015-11-04 19:03:29
【问题描述】:

在我的 PartsController 我有以下代码:

$serialNrs = $this->Part->find('list',
        array(
        'conditions'=>array(
            'Part.status_id' => 3
        ),
        'fields'=> array('serial_nr_id' )
        //'fields'=> array('serialNr.name')
    ));

相应的选择字段显示一个 id 列表而不是值。 当我使用'fields'=> array('serialNr.name') 时出现错误:

SQLSTATE[42S22]:找不到列:1054 '字段列表'中的未知列'SerialNr.name'

选择Part.serial_nr_id, SerialNr.name FROM part145.parts AS Part WHERE Part.status_id = 3

我需要做什么才能显示值列表?

【问题讨论】:

  • 添加两个字段'fields'=> array('serial_nr_id' , 'value or title that you want to show')
  • 这将是 serialNr.name 但它会引发错误。
  • 如果您的数据库列名是serialNr.name,那么它会出错,因为 cakephp 会将其作为模型名称,请将其更改为 serial_nr_name,如果这是您的模型名称,那么您不能添加列来自list 函数中的另一个表。

标签: cakephp-2.0


【解决方案1】:

您应该使用模型名称而不是数据库中的实际表名,因此

$serialNrs = $this->Part->find('list',
    array(
    'conditions'=>array(
        'Part.status_id' => 3
    ),
    'fields'=> array('Part.name' )
));

根据上面的代码,你有一个名为“Part”的模型,它指向一个数据库表,其中至少有一个“status_id”列和一个“name”列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-30
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多