0

私は自分のビューでこれをやりたいのですが、うまくいきません:

<?php echo $user->group->name;?>

私は3つのテーブルを持っています

- users (id, name)
- groups (id, name)
- users_groups (id, user_id, group_id)

私は2つのモデルを持っています

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')
    );
}

私のモデルが間違っているか、何かが欠けていますか? 別のモデル users_groups が必要ですか? はいの場合、どのように呼ばれますか?

助けが必要です。正しい方法が見つかりません。

ありがとう!

4

3 に答える 3

2

解決策は次のとおりです。

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')
    );
}

問題は、3 番目のモデル (UsersGroup 単数形) の名前にありました。

于 2012-06-25T11:04:47.480 に答える
0
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);
    }
}

この関数をユーザー関数に追加します

于 2012-06-25T07:48:59.057 に答える