在Eloquent ORM中使用has_many_and_belongs_to时选择列

I have three tables, places, place_user, users. I want to list users according to place_user table in Place model by using has_many_and_belongs_to method. But i don't want to select all columns of users. I tried to do by below:

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

also:

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

but they didn't work.

What is the best way to handle this?

Place model:

class Place extends Eloquent {

    public static $timestamps = true;

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


}

User model:

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

Thanks.

Still, not working with get, first methods but select method is working:

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

I have a feeling this is causing errors because one or both columns "name"/"email" are ambiguous across your Place and User tables.

As in your solution, you are able to write columns specifying tables:

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