Phalcon 获取相关记录失败

Phalcon 获取相关记录失败,phalcon,Phalcon,我在让Phalcon表单加载相关记录时遇到了一些问题。一个简单的示例,其中一些代码为了简洁而被截断:有人能告诉我为什么对相关表的调用会忘记父表中的外键吗 对于给定的表用户,可以有许多useraddr 和/ CREATE TABLE `user_addrs` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `users_id` int(10) unsigned NOT NULL PRIMARY KEY (`id`), KEY `fk

我在让Phalcon表单加载相关记录时遇到了一些问题。一个简单的示例,其中一些代码为了简洁而被截断:有人能告诉我为什么对相关表的调用会忘记父表中的外键吗

对于给定的表用户,可以有许多useraddr

和/

CREATE TABLE `user_addrs` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `users_id` int(10) unsigned NOT NULL
  PRIMARY KEY (`id`),
  KEY `fk_user_addrs_users1_idx` (`users_id`),
  CONSTRAINT `fk_user_addrs_users1` FOREIGN KEY (`users_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=latin1
/models/Users.php

public function initialize()
{
    $this->hasMany("id", "PhalconRest\Models\UserAddrs", "users_id", array('alias' => 'UserAddrs'));
/models/UserAddrs.php

public function initialize()
{
    $this->belongsTo('users_id', 'PhalconRest\Models\Users', 'id', array('alias' => 'Users'));
此代码

    $user = Users::findFirst($id);
    $userAddrsRecs = $user->UserAddrs->toArray();
让我

SELECT `users`.`id` FROM `users` WHERE `users`.`id` = 103 LIMIT :1

SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`='user_addrs'

DESCRIBE `user_addrs`

SELECT `user_addrs`.`id` FROM `user_addrs` WHERE `user_addrs`.`users_id` = :0

问:为什么对user\u addrs的调用忘记了相关记录是针对users.id 103的?

我看不出它在哪里丢失了:where user\u addrs.users\u id=:0显然意味着它绑定了一些东西,很可能是您所说的103值。您是对的,尽管对一个Phalcon新手来说,users_id=:0在当时对我来说没有任何意义。只是为了让其他读者明白:绑定是在PDO级别完成的,而不是由Phalcon完成的。您可以看到许多形式:?,?0,:0,:id,:id:numeric与命名绑定。
SELECT `users`.`id` FROM `users` WHERE `users`.`id` = 103 LIMIT :1

SELECT IF(COUNT(*)>0, 1 , 0) FROM `INFORMATION_SCHEMA`.`TABLES` WHERE `TABLE_NAME`='user_addrs'

DESCRIBE `user_addrs`

SELECT `user_addrs`.`id` FROM `user_addrs` WHERE `user_addrs`.`users_id` = :0