[액션] 고급 액션
액션 유틸리티 주입
대부분의 액션 설정 메서드는 하드코딩된 값 대신 함수형 파라미터를 허용합니다:
php
Action::make('edit')
->label('Edit post')
->url(fn (): string => route('posts.edit', ['post' => $this->post]))
이것만으로도 다양한 커스터마이징이 가능합니다.
이 패키지는 또한 이러한 함수 내부에서 사용할 수 있는 다양한 유틸리티를 파라미터로 주입할 수 있습니다. 함수형 인자를 받는 모든 커스터마이징 메서드는 유틸리티 주입이 가능합니다.
이렇게 주입되는 유틸리티는 특정 파라미터 이름을 사용해야 합니다. 그렇지 않으면 Filament가 무엇을 주입해야 하는지 알 수 없습니다.
현재 모달 폼 데이터 주입하기
현재 모달 폼 데이터에 접근하고 싶다면, $data
파라미터를 정의하세요:
php
function (array $data) {
// ...
}
모달이 아직 제출되지 않았다면 이 값은 비어 있을 수 있습니다.
현재 인자 주입하기
액션에 전달된 현재 인자에 접근하고 싶다면, $arguments
파라미터를 정의하세요:
php
function (array $arguments) {
// ...
}
현재 Livewire 컴포넌트 인스턴스 주입하기
액션이 속한 현재 Livewire 컴포넌트 인스턴스에 접근하고 싶다면, $livewire
파라미터를 정의하세요:
php
use Livewire\Component;
function (Component $livewire) {
// ...
}
현재 액션 인스턴스 주입하기
현재 액션 인스턴스에 접근하고 싶다면, $action
파라미터를 정의하세요:
php
function (Action $action) {
// ...
}
여러 유틸리티 동시 주입하기
파라미터는 리플렉션을 통해 동적으로 주입되므로, 원하는 순서로 여러 파라미터를 조합할 수 있습니다:
php
use Livewire\Component;
function (array $arguments, Component $livewire) {
// ...
}
Laravel 컨테이너에서 의존성 주입하기
유틸리티와 함께 Laravel 컨테이너에서 제공하는 어떤 의존성도 평소처럼 주입할 수 있습니다:
php
use Illuminate\Http\Request;
function (Request $request, array $arguments) {
// ...
}