Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inny][Laravel5] Przesyłanie parametrów do middleware
Forum PHP.pl > Forum > PHP > Frameworki
mariio81
Witam,
czy jest jakiś sposób na przesyłanie parametrów do middleware w controlerze (chodzi o laravel 5.0) i czy middleware może być używane w metodach czy tylko w konstruktorze?
mariio81
To jest do 5.1 a ja szukam do 5.0 i widzę że według tego co tam jest napisane nie można przekazywac parametrów w wersji 5.0.
memory
To sobie zakutalizuj do 5.1 :] u mnie przeszło bezboleśnie
mariio81
Nie chodzi o aktualizacje tylko piszę coś co musi chodzić na php 5.4 a w dokumentacji jest że 5.1 potrzebuje php 5.5.9
Pyton_000
To może powiedz co chcesz zrobić.

Middleware możesz używać w routes, contruct i metodach (kontrolerów)
memory
Co cchesz dokładnie przekazać ?
mariio81
Chciałem coś takiego tam upchnąć żeby nie powielać kodu
  1. if (!auth()->user()->can('edit-user')) {
  2. return view('admin.contents.401');
  3. }

gdzie 'edit-user' miało być przekazywane jako parametr bo będzie w każdym kontrolerze inne.
Pyton_000
Utwórz sobie klasę np. jakieś Service której będziesz miał metodę z kodem powyżej (z tym że zamiast return view zrób abort(401); i szablon w katalogu errors/401.balde.php

Do metody wrzucaj parametr z can()
mariio81
Myślałem nad klasą do tego i to będzie chyba najlepsze rozwiązanie a co w przypadku gdy bedzie np rola 'login' i ten kto jej nie bedzie posiadał powinien zobaczyć stronę logowania z informacją 'Brak dostępu!'. W kontrolerze w metodzie wygladało by to tak:
  1. return view('admin.auth.login')->withErrors(['login' => 'Brak dostępu!']);

a tutaj jeśli nie można użyć return?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.