Poceo sam da ucim Laravel, skinuo neki video tutorijal sa neta i sve je islo kako treba dok nisam dosao do validacije forme. Prepisao sam sve isto kao i lik na tutorijalu ali meni ne pokazuje greske uopste. Da li bi neko mogao da mi pomogne?
Ovo je celokupan kod:
View:
@extends('layouts.master')
@section('content')
<div class="centered">
<a href="{{ route('niceaction',['action'=>'greet']) }}">Greet</a>
<a href="{{ route('niceaction',['action'=>'hug']) }}">Hug</a>
<a href="{{ route('niceaction',['action'=>'kiss']) }}">Kiss</a>
<br>
<br>
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<form action="{{ route('benice') }}" method="post">
<label for="select-action">I want too...</label>
<select id="select-action" name="action">
<option value="greet">Greet</option>
<option value="hug">Hug</option>
<option value="kiss">Kiss</option>
</select>
<input type="text" name="name">
<button type="submit">Action</button>
<input type="hidden" value="{{ Session::token() }}" name="_token">
</form>
</div>
@endsection
Routes:
<?php
Route::group(['middleware' => ['web']],function(){
Route::get('/', function () {
return view('home');
})->name('home');
Route::group(['prefix'=>'do'],function (){
Route::get('/{action}/{name?}', [
'uses'=>'NiceActionController@getNiceAction',
'as'=>'niceaction'
]);
Route::post('/', [
'uses'=>'NiceActionController@postNiceAction',
'as'=>'benice'
]);
});
});
Controller:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class NiceActionController extends Controller
{
public function getNiceAction($action,$name=null)
{
return view('actions.'.$action,['name'=>$name]);
}
public function postNiceAction(Request $request)
{
$this->validate($request,[
'action' => 'required',
'name' => 'required|alpha'
]);
return view('actions.nice',['action'=>$request['action'], 'name'=>$this->transformName($request['name'])]);
}
private function transformName($name)
{
$prefix = 'KING ';
return $prefix . strtoupper($name);
}
}