Php 在使用时选择列有很多,并且在雄辩的ORM中属于
我有三个表,place,place\u user,users。我想使用has\u many\u和\u belient\u to方法,根据place\u用户表就地模型列出用户。但我不想选择所有用户列。我试图通过以下方式实现: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::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'));