Cześć wszystkim mam pytanie, otóż próbuję rozgryźć jak zrobić system by nie dało się wejść do formularza prosto z linku. No i wpadł mi do głowy myślę jeden pomysł,z mojej strony wygląda sensownie. Tylko że nie wiem jak wykonać przekierowanie, po którym nie wykonuje się reszta kodu. Zaraz wyjaśnię krok po kroczku,
- Tworzę routy dla dodawania posta, oraz routa który tego posta tworzy
Route::resource('post','PostController');
Route::post('/post/create','PostController@store');
- Tworzę Middleware, domyślnie go konfiguruję i nazywam, i wrzucam zawartość
if($request->has('content'))
{
echo "Tu coś jest";
echo $request->content;
return redirect('home');
}
else
{
echo "Tu niczego nie ma!";
return redirect('home');
}
return $next($request)
- Tworzę prosty formularz
<form method="POST" action="{{ action('PostController@store') }}">
@csrf
<div class="form-group row">
<label for="tytul">Tytuł</label>
<input type="tytul" id="tytul" name="tytul" class="form-control{{ $errors->has('tytul') ? ' is-invalid' : '' }}" value="{{ old('tytul') }}" required/>
</div>
<div class="form-group row">
<label for="contnet">Zawartość</label>
<input type="text" id="content" name="content" class="form-control{{ $errors->has('content') ? ' is-invalid' : '' }}" value="{{ old('content') }}" required/>
</div>
<button type="submit" class="btn btn-primary">Wyślij</button>
</form>
- Oraz oczywiście do kontrolera, i routa dodaję middleware
Route::post('/post/create','PostController@store')->middleware('przed');;
Jeżeli chodzi o działanie kodu to działa dobrze. Lecz próbuję zrobić tak żeby nikt do niego nie miał dostępu z poziomu przeglądarki, i od razu przekierowywało. Mój problem polega na tym że laravel zamiast przekierować, pokazuje błąd w dalszej części kodu. Czyli przechodzi middleware i idzie normalnie do PostController@storage, gdzie właśnie poprzez "return", chcę wstrzymać jego działanie, i nie szedł do następnych funkcji