수색…


암시 적 바인딩

Laravel은 변수 이름이 경로 세그먼트 이름과 일치하는 경로 또는 컨트롤러 동작에 정의 된 Eloquent 모델을 자동으로 확인합니다. 예 :

Route::get('api/users/{user}', function (App\User $user) {
    return $user->email; 
});

이 예에서는 경로에 정의 된 Eloquent $ 사용자 변수가 경로 URI의 {user} 세그먼트와 일치하기 때문에 Laravel은 요청 URI의 해당 값과 일치하는 ID가있는 모델 인스턴스를 자동으로 주입합니다. 일치하는 모델 인스턴스가 데이터베이스에서 발견되지 않으면 404 HTTP 응답이 자동으로 생성됩니다.

모델의 테이블 이름이 여러 단어로 구성된 경우 암시 적 모델 바인딩을 작동 시키려면 입력 변수가 모두 소문자 여야합니다.
예를 들어 사용자가 어떤 종류의 작업을 수행 할 수 있고이 작업 에 액세스하려는 경우 경로는 다음과 같습니다.

Route::get('api/useractions/{useraction}', function (App\UserAction $useraction) {
    return $useraction->description; 
});

명시 적 바인딩

명시 적 Y 인딩을 등록하려면 라우터의 모델 메소드를 사용하여 주어진 매개 변수에 대한 클래스를 지정하십시오. RouteServiceProvider 클래스의 boot 메소드에서 명시 적 모델 바인딩을 정의해야합니다.

public function boot()
{
   parent::boot();

   Route::model('user', App\User::class);
}

다음으로 {user} 매개 변수를 포함하는 경로를 정의 할 수 있습니다.

$router->get('profile/{user}', function(App\User $user) {
  
});

모든 {user} 매개 변수를 App\User 모델에 바인딩 했으므로 사용자 인스턴스가 경로에 삽입됩니다. 예를 들어, profile/1 요청은 ID1 인 데이터베이스의 User 인스턴스를 주입합니다.

일치하는 모델 인스턴스가 데이터베이스에서 발견되지 않으면 404 HTTP 응답이 자동으로 생성됩니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow