PHP activerecord-关系有很多(用户、组、用户组)
在我看来,我想这样做,但它不起作用:PHP activerecord-关系有很多(用户、组、用户组),php,codeigniter,codeigniter-2,phpactiverecord,Php,Codeigniter,Codeigniter 2,Phpactiverecord,在我看来,我想这样做,但它不起作用: <?php echo $user->group->name;?> 我有两种型号 class User extends ActiveRecord\Model { static $belongs_to = array( array('group', 'through' => 'users_groups') ); } class Group extends ActiveRecord\Model {
<?php echo $user->group->name;?>
我有两种型号
class User extends ActiveRecord\Model
{
static $belongs_to = array(
array('group', 'through' => 'users_groups')
);
}
class Group extends ActiveRecord\Model
{
static $has_many = array(
array('users' , 'through' => 'users_groups')
);
}
我的模型错了或者遗漏了什么?我需要另一个模型用户组?如果是,将如何命名
我需要帮助,我找不到正确的方法
谢谢
class User extends ActiveRecord\Model
{
function get_group($user_id){
$query = "SELECT name FROM groups
LEFT JOIN users_groups ON (groups.id=users_groups.group_id)
LEFT JOIN users ON (users_groups.user_id=users.id)";
$this->group = mysql_fetch_object($query);
}
}
将此函数添加到您的用户函数中我想您的问题的答案在中。这是您正在尝试实现的多对多关联的一个示例。在这种情况下,组是订单,用户组是付款
class Order extends ActiveRecord\Model {
static $has_many = array(
array('payments'),
array('users', 'through' => 'payments')
);
}
class Payment extends ActiveRecord\Model {
static $belongs_to = array(
array('user'),
array('order')
);
}
class User extends ActiveRecord\Model {
static $has_many = array(
array('payments')
);
}
$order = Order::first();
# direct access to users
print_r($order->users); # will print an array of User object
解决办法是:
class User extends ActiveRecord\Model
{
static $has_many = array(
array('groups', 'through' => 'usersgroups', 'order'=>'id asc'),
array('usersgroups')
);
}
class Group extends ActiveRecord\Model
{
static $has_many = array(
array('users' , 'through' => 'usersgroups'),
array('usersgroups')
);
}
class UsersGroup extends ActiveRecord\Model
{
static $table_name = 'users_groups';
static $belongs_to = array(
array('user'),
array('group')
);
}
问题在于第三个模型的名称(UsersGroup的单数)是的,在users\u groups表中是关系。您可以在user类中获取用户的组名称,也可以在group中获取group的用户列表class@mohammadfalahat我使用php activerecord,我想通过关联来实现这一点,不是代码我需要处理php activerecord关系(我的问题是我的模型没有适当的关联)我没有运气地遵循了这本手册,我的问题是第三个模型,他的名字和关联。
class User extends ActiveRecord\Model
{
static $has_many = array(
array('groups', 'through' => 'usersgroups', 'order'=>'id asc'),
array('usersgroups')
);
}
class Group extends ActiveRecord\Model
{
static $has_many = array(
array('users' , 'through' => 'usersgroups'),
array('usersgroups')
);
}
class UsersGroup extends ActiveRecord\Model
{
static $table_name = 'users_groups';
static $belongs_to = array(
array('user'),
array('group')
);
}