【问题标题】:CakePhp association hasManyCakePhp 关联 hasMany
【发布时间】:2016-07-14 14:14:04
【问题描述】:

首先,我知道有很多类似我的问题,但是我测试了很多解决方案,阅读了文档但我的问题没有解决。

我正在使用 Cakephp 2.x

我有 2 个表用户和电话号码

    CREATE TABLE `users` (
    `id` varchar(32) NOT NULL,
    `user_group_id` int(11) unsigned DEFAULT NULL,
    `username` varchar(100) DEFAULT NULL,
    `password` varchar(255) DEFAULT NULL,
    `salt` text,
    `email` varchar(100) DEFAULT NULL,
    `first_name` varchar(100) DEFAULT NULL,
    `last_name` varchar(100) DEFAULT NULL,
    `created` datetime DEFAULT NULL,
    `modified` datetime DEFAULT NULL,
    PRIMARY KEY (`id`),
    KEY `user` (`username`),
    KEY `mail` (`email`),
    KEY `users_FKIndex1` (`user_group_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    CREATE TABLE `phonenumbers` (
    `id` varchar(32) NOT NULL,
    `user_id` varchar(32) NOT NULL,
    `phoneNumber` varchar(64) NOT NULL,
    `modified` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`),
    CONSTRAINT `fk_phonenumbers_user` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)   
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在我的模型用户中,我得到:

     var $hasMany = array(
    'LoginToken' => array('className' => 'Usermgmt.LoginToken', 'limit' => 1),
    'PhoneNumber' => array('className' => 'PhoneNumber'),
    );

在我的模型电话号码中,我得到:

    var $belongsTo = 'Usermgmt.User';

当我尝试选择我的用户时,我的模型之间没有链接

    $this->User->find('all');
    array(
       (int) 0 => array(
          'User' => array(
              'password' => '*****',
              'id' => '1',
              'user_group_id' => '1',
              'username' => 'admin',
              'salt' => '',
              'email' => 'admin@admin.com',
              'first_name' => 'Admin',
              'last_name' => '',
              'created' => '2016-03-16 13:49:49',
              'Modified' => '2016-03-21 13:04:26',
           )
        ),
               (int) 1 => array(

        ..........

我做错了什么?我需要有这样的发现

       array("User"=>array(my data),
             "PhoneNumber"=>array(my data)
            )

感谢您的帮助。

【问题讨论】:

    标签: cakephp cakephp-2.0 has-many belongs-to


    【解决方案1】:

    在电话号码模型中使用

    var name='PhoneNumber';
    $belongsTo = 'User';
    

    在模型用户中

    var name='User';
    $hasMany='PhoneNumber';
    

    【讨论】:

      【解决方案2】:

      将此添加到 model/User.php 希望它会工作

      public $hasMany = array(
          'Phonenumber' => array(
          'className' => 'Phonenumber',
          'foreignKey' => 'user_id',
          'conditions' => array('Phonenumber.user_id' => 'User.id'),
          'dependent' => true
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多