Evita la excepción "Ambiguous Column"en Eloquent.

시나리오: 관계를 위한 모델과 관계를 맺는 사람 algunas columnas de la relaciones.

모델:



사용자:




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();

좋은 웹페이지 즐겨찾기