0

我有三张桌子places,,,,place_userusers我想通过使用方法users根据place_userPlace 模型中的表格列出has_many_and_belongs_to。但我不想选择所有用户列。我试图通过以下方式做到:

Place::find(1)->users()->get(array('name','email'));

还有

Place::find(1)->users()->first(array('name','email'));

但他们没有工作。

处理这个问题的最佳方法是什么?

放置型号:

class Place extends Eloquent {
    public static $timestamps = true;

    public function users() {
        return $this->has_many_and_belongs_to('user');
    }
}

用户型号

class User extends Eloquent {
    public static $timestamps = true;

    public function get_updated_at_readable() {
        return date('d.m.Y / H:i:s', strtotime($this->get_attribute('updated_at')));
    }

    public function get_created_at_readable() {
        return date('d.m.Y / H:i:s', strtotime($this->get_attribute('updated_at')));
    }

    public function places() {
        return $this->has_many_and_belongs_to('place','place_user');
    }
}

谢谢。

4

2 回答 2

2

仍然,不使用 get, first 方法,但 select 方法正在工作:

Place::find(1)->users()->select(array('users.name', 'users.email'))->get();
于 2012-09-07T21:48:34.413 回答
0

我感觉这会导致错误,因为“名称”/“电子邮件”列中的一列或两列在您的 Place 和 User 表中不明确。

与您的解决方案一样,您可以编写指定表的列:

Place::find(1)->users()->get(array('users.name','users.email'));
于 2012-12-07T14:21:33.863 回答