[ nepoverljiv @ 11.10.2016. 19:40 ] @
Zrdavo,

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:

Code:

@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:
Code:

<?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:
Code:

<?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);
    }
}
[ Nemanja Avramović @ 13.10.2016. 19:34 ] @
Čekaj, je l' ne okine validaciju ili okine (vrati te nazad) ali nema poruka?


Probaj da radiš proveru sa

Code:
if ($errors->any())


$errors je objekat (Illuminate\Support\MessageBag) pa ne možeš nad njim da radiš count(). Ili možda možeš, ne znam. Meni radi :D

Takođe, probaj i ovo posle odrađene validacije (u view-u):

Code:
{{ dd($errors) }}
[ nepoverljiv @ 16.10.2016. 20:04 ] @
errors je uvek prazno, nemam pojma kako, odradi validaciju ali nema nikakve greske da se prikaze.
[ Panajotov @ 16.10.2016. 20:32 ] @
Koju verziju Laravela koristis? A koju koriste na tutorijalu?
[ Nemanja Avramović @ 17.10.2016. 07:44 ] @
Pogledaj i ovo: http://stackoverflow.com/quest...is-always-empty-in-laravel-5-2

Citat:
As of v5.2.27, released on 2015-03-25, all routes in app\Http\routes.php are now in the web middleware group by default. If you have explicitly specified this middleware group inside your app\Http\routes.php file, you should remove it and that should resolve your issue.
[ nepoverljiv @ 17.10.2016. 18:09 ] @
Prosto ne mogu da verujem, uradio sam sta su rekli na ovom stackoverflow linku i radi (izbaciti route iz middleware grupe). Bila je fora do verzije, ja koristim 5.29.

Hvala puno na odgovorima.

Problem solved :).
[ Nemanja Avramović @ 19.10.2016. 22:53 ] @
Super, svaki dan naučiš nešto novo. Ni ja nisam znao za ovo, ali očigledno ne možeš dva puta da koristiš "web" middleware.