Laravel 5

Formulaire _This action is unauthorized

Avatar de zigomario
zigomario

Bonjour,

Habituellement, j'ai jamais de soucis pour écrire en bdd. Seulement, c'est toujours dans des routes sous middleware. Est ce le soucis ?

Message d'erreur : HttpException in Handler.php line 133: This action is unauthorized

Ma route :

Route::post('/store/{id?}', [

    'uses'=>'EventsController@store',
    'as'=>'store_events'
])->where('id','\d+');

Mon controlleur :

  public function store(EventsRequest $request, $id =null)

    {

        if(!empty($id)){

            $events = Events::find($id);

        }else{

            $events = new Events();

        }
        $events->nom = $request->name;
        $events->prenom = $request->prenom;
        if($request->participe){
            $events->participe = true;
        }else{
            $events->participe=false;
        }

        $events->save();

        return Redirect::route('read_events');

    }

Modèle :

namespace App\Http\Models;

use Illuminate\Database\Eloquent\Model;

class Events extends Model
{
    protected $table="events";
    public $timestamps=false;
}

Vue :

<form id="form_event" action="{{route('store_events')}}" method="POST" enctype="multipart/form-data">
        <div class="table-responsive">
            <table class="table">
                <caption>Tableau de participation</caption>
                <thead>
                    <tr>
                        <th>Nom</th>
                        <th>Prenom</th>
                        <th>Participe :</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        @foreach($events as $event)
                            <td>{{$event->nom}}</td>
                            <td>{{$event->prenom}}</td>
                            <td>{{$event->participe}}</td>
                        @endforeach
                    </tr>

                    <tr>

                            <td><input id="name" name="name" placeholder="Nom.." type="text"></td>
                            <td><input id="prenom" name="prenom" placeholder="Prenom.." type="text"></td>
                            <td><input id="participe" name="participe" type="checkbox" value="oui"></td>

                    </tr>
                </tbody>


            </table>
        </div>

        <input type="hidden" name="_token" value="{{ csrf_token() }}">
        <input id="submit_button"  type="submit" value="Enregistrer" />
    </form>

Merci par avançe

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

Bonjour,

A priori le souci est dans EventsRequest. La fonction authorize ne doit pas être correcte.

Posté il y a 3 ans
Avatar de zigomario
zigomario

Bonjour,

Comme d'habitude, efficacité et rapidité Bestmomo. merci beaucoup.

Effectivement, par defaut, authorize semble être sur false. En true, ça fonctionne. Si je comprend bien, mettre en false, implique automatiquement de créer un système de log/permission pour l'écriture

Posté il y a 3 ans
Avatar de bestmomo
bestmomo

C'est une des multiples façons de délivrer une autorisation avec Laravel.

Posté il y a 3 ans

Vous ne pouvez pas répondre à ce sujet.