Laravel 컨트롤러에서 주어진 함수를 초기화하는 방법
P粉404539732
P粉404539732 2024-01-10 16:51:22
0
1
304

클래스에서 전체 코드를 다시 작성하지 않고 특정 변수를 초기화하여 클래스에서 재사용하고 싶습니다.

으아아아

위의 변수는 재사용하고 싶은 변수입니다.

생성자를 사용해 보았습니다

으아아아

하지만 브라우저에 블레이드 보기를 로드하면 Too少的参数到函数 AppHttpControllersProfileController::index(), 0 Passed이 표시됩니다.

도와주세요?

P粉404539732
P粉404539732

모든 응답(1)
P粉627027031

개념이 헷갈려서 고민이신데요. 종속성 주입, 로컬 인스턴스 변수 및 경로 모델 바인딩 또는 경로 변수 바인딩이 가능합니다.

종속성 주입을 위해서는 Laravel이 클래스 인스턴스를 제공해야 합니다. Laravel이 무언가를 로드하는 상황에서는 일반적으로 DI를 사용하여 알 수 없는 항목을 채우려고 시도합니다. 생성자의 경우 Laravel에 클래스의 새 인스턴스인 변수 이름 $profileInfo 下的 Profile을 생성자에게 제공하도록 요청합니다. 생성자에서 이 변수를 사용하지 않게 되므로 여기서 요청할 필요가 없습니다.

다음(여전히 생성자에 있음) 로컬 변수 profileInfo를 설정하고 이를 컨트롤러 클래스 인스턴스에 할당합니다.

경로가 index 方法时,存在 $profileInfo 변수 요청을 트리거하려고 시도하면 계속됩니다. Laravel은 이것이 무엇인지 전혀 모르고 경로의 어떤 것과도 일치하지 않습니다(문서의 경로 모델 바인딩 참조). 따라서 "매개 변수가 너무 적습니다."라는 메시지가 나타납니다. 이 변수가 존재하지 않으면 이전에 profileInfo를 설정해야 합니다.

지역 변수를 유지하려면 다음과 같이 하세요.

으아악

여기서 고려해야 할 또 다른 제안이 있습니다...

이것을 프로필이라고 하기 때문에, 적절한 프로필 기록을 사용자 모델에게 물어봐야 할 것 같습니다.

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿