Laravel + Turbo Streams
10 июня 2024

Для Laravel есть дополнения, которые призваны облегчить эту задачу, но мне не совсем понятно, а что, собственно одни облегчают?
Для обработке на стороне сервера надо использовать fragment. Все!
Например, я делал так:
routes/web.php (или routes/platform.php для orchid)
Route::get('some_fragment', [SomeFragment::class, 'render']);
app/Fragments/SomeFragment.php
<?php namespace App\Fragments; use Illuminate\Http\Request; class SomeFragment { /** * Get the view / contents that represents the component. */ public function render(Request $request) { return view('page-or-fragment', [ // data ])->fragment('some-fragment'); } }
page-or-fragment может быть страницей, содержащей необходимый фрагмент, тогда на выходе будет только указанный фрагмент. Можно указать на view только с фрагментом, Если эти данные не присутствуют на страницах, а сделаны отдельно.
view должен содержать либо сам либо вложенный фрагмент, например:
views/fragments/some.blade.php
view должен содержать либо сам либо вложенный фрагмент, например:
views/fragments/some.blade.php
@fragment('some-fragment') <turbo-stream action="{{$action}}" target="{{$target}}"> <template> ... </template> </turbo-stream> @endfragment