我尝试使用以下代码在CakePHP 2.x中构建一个下拉列表:
控制器
$Propertytype=$this->Propertytype->find("list",array("fields" => array("Propertytype.propertytype_id,Propertytype.propertytype_name,Propertytype.propertytype_id"),"order" => array("Propertytype.propertytype_id" => "desc"),"conditions" => array("Propertytype.propertytype_status" => "0")));
$this->set("propertytype",$Propertytype);
查看
<?php echo $this->Form->input("propertytype",array("class"=>"form-control","data-style"=>"btn-white",
"data-live-search"=>"true","label"=>false,"data-size"=>"5","required"=>"required","options"=>$propertytype));
?>
我没有使用Propertytype.id
作为主键。我将其重命名为Propertytype.Propertytype_id
。但是当我运行查询时,它要求Propertytype.id
。
Database Error
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Propertytype.id' in 'field list'
如何将其更改为Propertytype.property_id
作为选项值?
答案 0 :(得分:1)
您必须在课程$primaryKey
中定义Propertytype
:
class Propertytype extends AppModel
{
public $primaryKey = 'property_id';
}
您还必须使用正确的语法编写查询:
$Propertytype=$this->Propertytype->find("list",array(
"fields" => array(
"Propertytype.propertytype_id",
"Propertytype.propertytype_name"
),
"order" => array("Propertytype.propertytype_id" => "desc"),
"conditions" => array("Propertytype.propertytype_status" => "0")
));
你忘记了引号。