Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Cakephp中保存名称而不是Id_Php_Cakephp - Fatal编程技术网

如何在Cakephp中保存名称而不是Id

如何在Cakephp中保存名称而不是Id,php,cakephp,Php,Cakephp,我有一个简单的问题,我是蛋糕php的初学者。 因此,我的数据库中有一个名为“countries”的表。在我的视图“add.ctp”(添加新“LCC”的视图)中,我创建了一个使用我的表的国家下拉列表。 问题是,当我保存新的“LCC”时,cakephp会保存表countries的id(在我的示例中,该id被命名为“code”),而不是表(countries)的名称 在我的控制器中,功能添加: $this->loadModel('countries'); $this->set('c

我有一个简单的问题,我是蛋糕php的初学者。 因此,我的数据库中有一个名为“countries”的表。在我的视图“add.ctp”(添加新“LCC”的视图)中,我创建了一个使用我的表的国家下拉列表。 问题是,当我保存新的“LCC”时,cakephp会保存表countries的id(在我的示例中,该id被命名为“code”),而不是表(countries)的名称

在我的控制器中,功能添加:

$this->loadModel('countries');
    $this->set('country', $this->countries->find('list',array('fields'=>array('countries.name','countries.code'))));
在我的视图add.ctp中:

<?php echo $this->Form->input('destination_export', array('label' => '','class'=>'form-control','options'=>$country,'value'=>''));?>


任何帮助都将不胜感激。

您使用的是什么版本的CakePHP?3。谢谢你的回复,但我只是找到了解决办法。在我的model->coutiresTable中,我将“$this->primaryKey('code');”更改为“$this->primaryKey('name');”欢迎来到StackOverflow,提问时请始终提及您使用的确切CakePHP版本(供应商/CakePHP/CakePHP/version.txt中的最后一行)-谢谢。从您的代码来看,似乎可以使用CakePHP 2,但事实并非如此。在CakePHP3中,列表查找器的配置不同。也就是说,如果该列不是实际的主键,那么您真的不应该这样定义它!谢谢,我不会在我的项目中经常使用这个表,这就是为什么我不真正关心主键的原因。