Laravel valider les données du Formulaire
Je vais avoir du mal à prendre les données d'un formulaire dans mon application laravel, et de l'afficher à l'aide d'une autre méthode de la même contrôleur.
C'est mon FormController
class ForumController extends Controller {
+
+ private $name,
+ $description;
+
+ public function __construct() {
+ $this->middleware('auth');
+ }
+
+ /**
+ * Show the form for creating a new resource.
+ *
+ * @return Response
+ */
+ public function create()
+ {
+ return view('forum.create');
+
+ $this->name = Input::post('name');
+ }
+
+ /**
+ * Show the details of their input once its created
+ */
+ public function created()
+ {
+ var_dump($this->name);
+ }
+}
C'est mon Routes.php
Route::get('/group/create', 'ForumController@create');
+Route::post('/group/create', 'ForumController@created');
C'est mon forum de création de vue.
@extends('app')
+
+@section('content')
+
+ <div class="container">
+ <h1>Create a Forum</h1>
+ <hr>
+
+ <div class="panel panel-default">
+ <div class="panel-heading">Create your own forum here!</div>
+
+ <div class="panel-body">
+ @if (count($errors) > 0)
+ <div class="alert alert-danger">
+ <strong>Whoops!</strong>There were some problems with your input.<br><br>
+ <ul>
+ @foreach ($errors->all() as $error)
+ <li>{{ $error }}</li>
+ @endforeach
+ </ul>
+ @endif
+ <form class="form-horizontal" method="POST" action="{{ url('/group/create') }}">
+
+ <input type="hidden" name="_token" value="{{ csrf_token() }}">
+
+ <div class="form-group">
+ <label class="col-md-4 control-label">Name</label>
+ <div class="col-md-6">
+ <input type="text" class="form-control" name="name" min="1" max="20">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <label class="col-md-4 control-label">Description</label>
+ <div class="col-md-6">
+ <input type="text" class="form-control" name="description" min="1" max="255">
+ </div>
+ </div>
+
+ <div class="form-group">
+ <div class="col-md-6 col-md-offset-4">
+ <button type="submit" class="btn btn-primary">
+ Create
+ </button>
+ </div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+@stop
Quelqu'un pourrait me diriger dans la bonne direction s'il vous plaît?
Vous devez vous connecter pour publier un commentaire.
Bien, au moment de la panne sur votre exemple est que PHP ne va pas persister
$this->name
lorsque vous chargez lecreated
route. En fait, comme l'intervenant a déclaré,$this->name
n'est jamais mis parce que vous avez une déclaration préalable à sa définition.Après avoir défini
$this->name
dans la méthode create. Lorsque vous accédez à l'itinéraire créé,$this->name
n'est plus ensemble, même si vous déplacez votre instruction de retour après le réglage de nom.Vous aurez besoin de pesist les données dans une base de données/session/cache ou de redirection à partir de la méthode create pour créer la méthode de la transmission des données.
ou vérifier:
Vous devriez avoir ce code dans la méthode de contrôleur que vous publiez de.
Et vous pouvez enregistrer les valeurs de session ou flashdata si vous voulez quelque chose à enregistrer une demande et de le jeter ensuite. Et vous avez besoin de rediriger la vue de quelque chose d'aussi une vue ou un itinéraire.
http://laravel.com/docs/4.2/session#flash-data