Laravel France

Laravel aide, erreur (Routes, Contrôleurs)

Avatar de GGamer
GGamer

Salutations tout le monde, je débute dans le cour sur Laravel "Découvrez le framework PHP Laravel (ancienne version)" sur Openclassroom et j'ai un petit problème, je ne m'y connais pas assez sur Laravel pour trouver ou est-ce que j'ai raté, j'en suis au début du cour, au fur et à mesure que j'avance j 'essai de reproduire les codes présentés dans mon propre projet Laravel, je l'es appelé "Laravelt" pour Laravel teste, mon problème actuellement est le suivant, j'ai réussi à refaire une page comme dans le chapitre "la validation", On nous montre comment effectuer la validation d'un formulaire selon ce que le client va envoyer comme information, depuis le chapitre précédent on a un peu entamé le principe des contrôleurs des requêtes et des routes, le contrôleur a l'air de fonctionner, la route par contrôleur implicite ne fonctionne plus sur cette version de Laravel donc j'ai bidouillé ça en route :

<?php
 
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
/*Première partie du cour la validation*/
Route::get('/', 'ContactController@getForm');
Route::post('/', 'ContactController@postForm');
/*Route::controller('contact', 'ContactController');*/
/*Les Sessions*/
/*Route::get('photo', 'PhotoController@getForm');
Route::post('photo', 'PhotoGestion@postForm');*/

Voici le controlleur :

<?php
 
namespace App\Http\Controllers;
 
use Mail;
use App\Http\Requests\ContactRequest;
 
class ContactController extends Controller {
 
    public function getForm()
    {
        return view('contact');
    }
 
    public function postForm(ContactRequest $request)
    {
        Mail::send('emails.contact', $request->all(), function($message)
        {
            $message->to('Joueurgmw@gmail.com')->subject('Contact');
        });
 
        return view('confirm');
    }
 
}

Et ça c'est la requête associée :

<?php
 
namespace App\Http\Requests;
 
class ContactRequest extends Request {
 
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }
 
    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'nom' => 'required|min:5|max:20|alpha',
            'email' => 'required|email',
            'texte' => 'required|max:250'
        ];
    }
 
}

Pour ce qui est des vues les voici, mais je ne pense pas que mon problème vienne de là, je les mets toutes ensemble ici pour plus de commodité mais elles sont bien toutes dans des fichiers différents :

/*contact.blade.php*/
@extends('template')
 
@section('contenu')
    <br>
  <div class="col-sm-offset-3 col-sm-6">
    <div class="panel panel-info">
      <div class="panel-heading">Contactez-moi</div>
      <div class="panel-body">
        {!! Form::open(['url' => 'contact/form']) !!}
          <div class="form-group {!! $errors->has('nom') ? 'has-error' : '' !!}">
            {!! Form::text('nom', null, ['class' => 'form-control', 'placeholder' => 'Votre nom']) !!}
            {!! $errors->first('nom', '<small class="help-block">:message</small>') !!}
          </div>
          <div class="form-group {!! $errors->has('email') ? 'has-error' : '' !!}">
            {!! Form::email('email', null, ['class' => 'form-control', 'placeholder' => 'Votre email']) !!}
            {!! $errors->first('email', '<small class="help-block">:message</small>') !!}
          </div>
          <div class="form-group {!! $errors->has('texte') ? 'has-error' : '' !!}">
            {!! Form::textarea ('texte', null, ['class' => 'form-control', 'placeholder' => 'Votre message']) !!}
            {!! $errors->first('texte', '<small class="help-block">:message</small>') !!}
          </div>
          {!! Form::submit('Envoyer !', ['class' => 'btn btn-info pull-right']) !!}
        {!! Form::close() !!}
      </div>
    </div>
  </div>
@stop
/*confirm.blade.php*/
@extends('template')
 
@section('contenu')
    <br>
  <div class="col-sm-offset-3 col-sm-6">
    <div class="panel panel-info">
      <div class="panel-heading">Contactez-moi</div>
      <div class="panel-body">
        Merci. Votre message a été transmis à l'administrateur du site. Vous recevrez une réponse rapidement.
      </div>
    </div>
  </div>
@stop
/*Dans un dossier email dans le dossier des vues, contact.blade.php; pour les emails*/
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <h2>Prise de contact sur mon beau site</h2>
    <p>Réception d'une prise de contact avec les éléments suivants :</p>
    <ul>
      <li><strong>Nom</strong> : {{ $nom }}</li>
      <li><strong>Email</strong> : {{ $email }}</li>
      <li><strong>Message</strong> : {{ $texte }}</li>
    </ul>
  </body>
</html>

Normalement cette page d'après le cours est censée envoyer un mail si les infos entrées sont correctes pour me confirmer son fonctionnement, je ne sais pas si a ce niveau-là du cour c'est normal mais de mon côté ça ne marche pas tandis que dans le cour apparemment c'est censé marcher, je me dis que si je n'y arrive pas à ce niveau la suite sera ardu. Donc la page s'affiche sans problème comme dans le cour mais au niveau de l'envoi apparait ce message d'erreur dès que je clique sur envoyer :

in RouteCollection.php line 179
at RouteCollection->match(object(Request))
in Router.php line 546
at Router->findRoute(object(Request))
in Router.php line 525
at Router->dispatchToRoute(object(Request))
in Router.php line 511
at Router->dispatch(object(Request))
in Kernel.php line 176
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request))
in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure))
in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure))
in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure))
in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure))
in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request))
in Pipeline.php line 102
at Pipeline->then(object(Closure))
in Kernel.php line 151
at Kernel->sendRequestThroughRouter(object(Request))
in Kernel.php line 116
at Kernel->handle(object(Request))
in index.php line 53

Si quelqu'un peux m'aider à comprendre ça m'aiderait beaucoup sur la suite de ce cour, j'ai bien cherché sur google des sujets similaire mais ils sont trop avancé pour moi, leurs problématiques me dépasse.

Posté il y a 3 mois

Vous ne pouvez pas répondre à ce sujet.