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