我有三个表,地点,place_user,用户。我想使用has_many_and_belongs_to方法根据Place模型中的place_user表列出用户。但我不想选择所有用户列。我试着通过以下方式做到:
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');
}
}
感谢。
答案 0 :(得分:2)
仍然,不使用get,第一种方法,但select方法正在运行:
Place::find(1)->users()->select(array('users.name', 'users.email'))->get();
答案 1 :(得分:0)
我觉得这会导致错误,因为您的地方和用户表格中的一个或两个列“name”/“email”不明确。
在解决方案中,您可以编写指定表的列:
Place::find(1)->users()->get(array('users.name','users.email'));