Evita la excepción "Ambiguous Column"en Eloquent.
모델:
사용자:
public function teams()
{
return $this->belongsToMany(Team::class);
}
팀
public function users()
{
return $this->belongsToMany(User::class);
}
Ahora puedes hacer un "attach"de los 팀:
Team::users()->attach(auth()->user());
y obtener la colección de usuarios por equipment:
$users = Team::users;
Ok en este punto todo esta bien, es posible que pases datos por una API o a una vista pero tu modelo User sea muy amplio o tenga datos sensibles que no deseas que sean publicos.
posiblemente deseas mostrar solo el nombre y el email de los usuarios de cierto equipment:
$team = Team::first();
$team->users()->select(['name', 'email'])->get();
En este punto Tendras una excepción de eloquent, esto es porque el modelo User puede tener una columna que se llame "name"y el modelo Team tambien, esto es facil de evitar pasandoleexplicamente el yada la columna 명시적
Team::users()->select(['users.name', 'users.email'])->get();
La misma idea aplica cuando deseas usar un metodo "where":
Team::users()->where('users.email', $request->get('email'))->get();
Reference
이 문제에 관하여(Evita la excepción "Ambiguous Column"en Eloquent.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/arielmejiadev/evita-la-excepcion-ambiguous-column-en-eloquent-37el
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
public function teams()
{
return $this->belongsToMany(Team::class);
}
public function users()
{
return $this->belongsToMany(User::class);
}
Team::users()->attach(auth()->user());
$users = Team::users;
$team = Team::first();
$team->users()->select(['name', 'email'])->get();
Team::users()->select(['users.name', 'users.email'])->get();
Team::users()->where('users.email', $request->get('email'))->get();
Reference
이 문제에 관하여(Evita la excepción "Ambiguous Column"en Eloquent.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/arielmejiadev/evita-la-excepcion-ambiguous-column-en-eloquent-37el텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)