cakephp 3使用另一个表中的数据填充列表

时间:2016-02-16 22:07:19

标签: mysql list cakephp dynamic

我试图从表中的数据填充列表。该表称为字段,I'尝试抓取的列称为CALIBER_F。我的控制器有以下内容:

$ caliber = $ this-> fields-> CALIBER_F-> find(' list');         $这 - >设置(紧凑('口径'));

但是,我收到此错误: 错误:在null上调用成员函数find()。该列没有空值。理想情况下,我希望能够从多个表中填充列表。通常我的选择看起来像这样:

SELECT CALIBER_F FROM public.FIELDS WHERE CALIBER_F IS NOT NULL 联盟 SELECT CALIBER FROM public.GUN WHERE CALIBER不为NULL 联盟 从AMMO中选择CALIBER_AMMO,其中CALIBER_AMMO不为空;

1 个答案:

答案 0 :(得分:0)

看起来您可能需要重新检查语法。如果数据库表名称为“fields”,则模型名称应为Fields。

如果您在其他控制器中编写此文件(除了FieldsController.php),请使用$ this-> loadModel

在运行时加载模型
   $this->loadModel("Fields");

   $caliber = $this->Fields->find("list", [
      "keyField" => "id",
      "valueField" => "CALIBER_F"
   ])
   ->toArray();

   $this->set(compact('caliber'));

这当然可以解决您的问题。

和平!的xD