Gre*_*gus 5 select many-to-many laravel eloquent
我试图只选择多对多关系上的特定属性users,就像一对一一样。但是使用select()onbelongsToMany()似乎被忽略了,我仍然获得所有用户属性。
class Computer extends Eloquent {
public function users() {
return $this->belongsToMany("User")->select("email");
}
public function admin() {
return $this->hasOne("User")->select("email");
}
}
Computer::with("users")->get();
Run Code Online (Sandbox Code Playgroud)
有没有办法只过滤来自相关实体的指定列belongsToMany()?
是的,你确实可以。
Computer::with("users")->get(array('column_name1','column_name2',...));
Run Code Online (Sandbox Code Playgroud)
但如果数据透视表链接的两个表具有相同的列名称,请小心。在这种情况下,您需要以点符号 指定表名称tableName.columnName。例如,如果用户和计算机都有列名id,您需要执行以下操作:
Computer::with("users")->get(array('users.id','column_name2',...));
Run Code Online (Sandbox Code Playgroud)