我有一个phalcon项目(phalconphp.com)
我想创建3表关系User-> user_roles <-角色
用户表:id,role_id
User_roles:id,user_id,role_id
角色:ID,代码
我做到了:
Users.php
$this->hasMany(
'id',
'UserRoles',
'user_id'
);
UserRoles.php
$this->belongsTo(
'user_id',
'Users',
'id'
);
$this->belongsTo(
'role_type_id',
'Roles',
'id'
);
Roles.php
$this->hasMany(
'id',
'UserRoles',
'role_type_id'
);
我只想在我的控制器中:
$users = Users::find();
foreach ($users as $user) {
echo $user->id;
echo $user->roles->code;
}
但是得到:访问未定义的属性Users :: roles
有人可以帮我解决这个问题吗? 参考:https://docs.phalconphp.com/en/3.3/db-models-relationships
答案 0 :(得分:0)
唯一的问题是,Phalcon找不到我的表名(尽管它是对机器人示例的完全重写)。
我要做的就是为关系中的表指定别名。
答案 1 :(得分:0)
@chazecka关于Phalcon关系的重要注意事项:
它们使编码更容易,但是却创建了大量的查询。如果您关心性能,请留意正在执行的查询数量,有时该数量可能不是最佳选择。在这种情况下,您可能需要使用联接和https://olddocs.phalconphp.com/en/3.0.1/api/Phalcon_Mvc_Model_Query_Builder.html或https://docs.phalconphp.com/zh/3.3/db-phql