Make
Sometimes you need to return only part of a template in your HTTP response. For this, you can use Blade Fragments. The Fragment decorator allows you to create corresponding blocks.
You can create a Fragment using the static make()
method.
make(array $fields = [])
Method name()
sets the name for the fragment.
use MoonShine\Decorations\Fragment;use MoonShine\Fields\Text; //... public function components(): array{ return [ Fragment::make([ Text::make('Name', 'first_name') ]) ->name('fragment-name') ];} //...
Asynchronous event
You can incorporate an area in a Fragment and set an event on this area, by calling which it will be possible to update the fragment
Fragment::make($fields) ->name('fragment-name'),
And as an example, let's call an event for successful submission of the form
FormBuilder::make()->async(asyncEvents: 'fragment-updated-fragment-name')
You can also pass additional parameters with the request via an array
Fragment::make($fields) ->name('fragment-name') ->updateAsync(['resourceItem' => request('resourceItem')]),
Passing parameters
The withParams()
method allows you to pass field values with the request using element selectors.
Fragment::make($fields) ->withParams([ 'start_date' => '#start_date', 'end_date' => '#end_date' ]) ->name('fragment-name'),