[增添]添加了datasource的setting数据库以及默认值
This commit is contained in:
87
vendor/filament/actions/docs/08-advanced.md
vendored
Normal file
87
vendor/filament/actions/docs/08-advanced.md
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
---
|
||||
title: Advanced actions
|
||||
---
|
||||
|
||||
## Action utility injection
|
||||
|
||||
The vast majority of methods used to configure actions accept functions as parameters instead of hardcoded values:
|
||||
|
||||
```php
|
||||
Action::make('edit')
|
||||
->label('Edit post')
|
||||
->url(fn (): string => route('posts.edit', ['post' => $this->post]))
|
||||
```
|
||||
|
||||
This alone unlocks many customization possibilities.
|
||||
|
||||
The package is also able to inject many utilities to use inside these functions, as parameters. All customization methods that accept functions as arguments can inject utilities.
|
||||
|
||||
These injected utilities require specific parameter names to be used. Otherwise, Filament doesn't know what to inject.
|
||||
|
||||
### Injecting the current modal form data
|
||||
|
||||
If you wish to access the current [modal form data](modals#modal-forms), define a `$data` parameter:
|
||||
|
||||
```php
|
||||
function (array $data) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
Be aware that this will be empty if the modal has not been submitted yet.
|
||||
|
||||
### Injecting the current arguments
|
||||
|
||||
If you wish to access the [current arguments](adding-an-action-to-a-livewire-component#passing-action-arguments) that have been passed to the action, define an `$arguments` parameter:
|
||||
|
||||
```php
|
||||
function (array $arguments) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Injecting the current Livewire component instance
|
||||
|
||||
If you wish to access the current Livewire component instance that the action belongs to, define a `$livewire` parameter:
|
||||
|
||||
```php
|
||||
use Livewire\Component;
|
||||
|
||||
function (Component $livewire) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Injecting the current action instance
|
||||
|
||||
If you wish to access the current action instance, define a `$action` parameter:
|
||||
|
||||
```php
|
||||
function (Action $action) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Injecting multiple utilities
|
||||
|
||||
The parameters are injected dynamically using reflection, so you are able to combine multiple parameters in any order:
|
||||
|
||||
```php
|
||||
use Livewire\Component;
|
||||
|
||||
function (array $arguments, Component $livewire) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
### Injecting dependencies from Laravel's container
|
||||
|
||||
You may inject anything from Laravel's container like normal, alongside utilities:
|
||||
|
||||
```php
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
function (Request $request, array $arguments) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user