Cakephp:具有国家/州dropdowm的用户模型

Cakephp:具有国家/州dropdowm的用户模型,cakephp,Cakephp,我正在使用Auth组件进行用户登录和注册。我想将国家和州下拉列表添加到我的用户模型中。有人能帮我处理模型文件中所需的关联吗 class User extends AppModel { var $name = 'User'; var $belongsTo ="Country" ; } <?php class Country extends AppModel { var $name = 'Country'; var $hasMany = arra

我正在使用Auth组件进行用户登录和注册。我想将国家和州下拉列表添加到我的用户模型中。有人能帮我处理模型文件中所需的关联吗

class User extends AppModel {

    var $name = 'User';

    var  $belongsTo  ="Country" ;
}


<?php
class Country extends AppModel {

    var $name = 'Country';

    var $hasMany = array('User');

}?>
但是我得到了一个空的dropdowm

您所属的定义不正确。belongsTo属性必须是数组:

public $belongsTo = array('Country');
然后在用户控制器中,确保您获得了国家/地区列表:

您的视图将类似于:

<?php echo $this->Form->create('User');?>
    <fieldset>
      <legend><?php echo __('Edit User'); ?></legend>
      <?php
        echo $this->Form->input('id');
        // more fields
        echo $this->Form->input('country_id');
      ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit'));?>

有什么大不了的?你试过什么了吗?你可以在这里发布不起作用的代码。是的,让我用我拥有的更新!提示:烘焙你的代码。这样蛋糕就可以帮你了。你的答案会有答案的itself@Mark-谢谢你的提示!我从来没有想到我应该尝试烘烤!我有更多的协会来…一定会尝试烘焙脚本!在控制器中查找和设置国家/地区的代码在哪里?表单附带的操作。成功了!但是下拉列表包含的是国家ID而不是名称!您需要设置您所在国家/地区模型的$displayField。它可能是public$displayField='country'
$countries = $this->User->Country->find('list');
$this->set(compact('countries'));
<?php echo $this->Form->create('User');?>
    <fieldset>
      <legend><?php echo __('Edit User'); ?></legend>
      <?php
        echo $this->Form->input('id');
        // more fields
        echo $this->Form->input('country_id');
      ?>
    </fieldset>
<?php echo $this->Form->end(__('Submit'));?>