Php 在使用时选择列有很多,并且在雄辩的ORM中属于

Php 在使用时选择列有很多,并且在雄辩的ORM中属于,php,laravel,eloquent,Php,Laravel,Eloquent,我有三个表,place,place\u user,users。我想使用has\u many\u和\u belient\u to方法,根据place\u用户表就地模型列出用户。但我不想选择所有用户列。我试图通过以下方式实现: Place::find(1)->users()->get(array('name','email')); 此外: 但它们没有起作用 处理这个问题的最佳方法是什么 地点模型: class Place extends Eloquent { public s

我有三个表,place,place\u user,users。我想使用has\u many\u和\u belient\u to方法,根据place\u用户表就地模型列出用户。但我不想选择所有用户列。我试图通过以下方式实现:

Place::find(1)->users()->get(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');
    }
}

谢谢。

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

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

我觉得这会导致错误,因为在您的位置和用户表中,一列或两列“name”/“email”不明确

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

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

请提供
位置
用户
型号代码。我有一种不好的感觉,您的
User
模型没有扩展雄辩,或者您的关系设置不正确。我添加了位置和用户模型。我不确定,但是
Place::users()
方法不应该也指定
Place\u User
轴吗?另外,
User::places()
,我认为应该是
有很多()
。我怀疑用户是否属于Place,反之亦然。有透视表,
return$this->has_many_和_belien_to('User')将数据透视表指定为place_用户。has_many()不使用透视表,所以如果我使用它,我只会得到位置ID。另外,在您说要删除User::places()方法后,我尝试了,没有任何更改。我应该说,
Place::find(1)->users()->get();地点::查找(1)->用户等正在工作。只是我无法指定列。尝试指定列时是否出错?然后,尝试
->get(数组('.','.'))
notation.->get()将获取选择数组的第一个参数。
Place::find(1)->users()->get(array('users.name','users.email'));