yusufm's avatar

Livewire pagination middleware not working

When I navigate page, assigned middleware on route does not call. middleware

class setGlobalRequestParams
{
    public function handle(Request $request, Closure $next): Response
    {
        if(!isset($request->lan)) {
            $lang = app()->getLocale();
            request()->merge(['lan' => $lang]);
            // $request->attributes->set('lan', $lang);
            // $request->attributes->get('lan');
        }
        // dd(request()->all());
        return $next($request);
    }

middleware registered and assigned

 'set.request.lang' => setGlobalRequestParams::class, 
Route::middleware('set.request.lang')->group(function() {
    Route::get('/category', CategoryComponent::class)->name('category');
});

component code

class CategoryComponent extends Component
{
    use WithPagination;
    // public $categories = [];
    public function render()
    {
        $categories = Category::select('id','category_name','sort_desc')->paginate(10);
        return view('livewire.category-component',[
            'categories' => $categories
        ]);
    }
}

view

{{ $categories->links() }}
0 likes
5 replies
Snapey's avatar

please format your question correctly

Snapey's avatar

I can see the code, but have no idea what 'not working' means or what it has to do with pagination

By the way ``` must be on their own line

yusufm's avatar

@snapey Thanks for your response, When I navigate the page, I don't get params (request()->lan) because middleware does not call on navigation

yusufm's avatar
yusufm
OP
Best Answer
Level 1

Hi @snapey, Solved Isuue By applying Persistent Middleware in service provider like this

Livewire::addPersistentMiddleware([
            YourOwnMiddleware::class,
        ]);

Note: use this

use App\Http\Middleware\YourOwnMiddleware;
use Livewire\Livewire;
1 like

Please or to participate in this conversation.