Laravel Passant Variable de Formes
Je suis tout nouveau à Laravel, et à la suite d'un super tutoriel de base.
Cependant, le tutoriel n'est pas venu avec une édition record de section, à laquelle j'essaie de me projeter.
Route:
Route::controller('admin/products', 'ProductsController');
Contrôleur:
class ProductsController extends BaseController
{
public function getUpdate($id)
{
$product = Product::find($id);
if ($product) {
$product->title = Input::get('title');
$product->save();
return Redirect::to('admin/products/index')->with('message', 'Product Updated');
}
return Redirect::to('admin/products/index')->with('message', 'Invalid Product');
}
..ECT...
Je me rends compte que le contrôleur demande un ID à utiliser, mais je ne peux pas comprendre comment faire pour passer l'ID d'un produit lorsque le formulaire est affiché/get.
Forme:
{{Form::open(array("url"=>"admin/products/update",'method' => 'get', 'files'=>true))}}
<ul>
<li>
{{ Form::label('title', 'Title:') }}
{{ Form::text('title') }}
{{ Form::hidden('id', $product->id) }}
..ECT...
{{ Form::close() }}
mon idée de départ était de passer l'id de produit à l'intérieur de la forme des URL de ce type:
{{Form::open(array("url"=>"admin/products/update/{{product->id}}", 'files'=>true))}}
Mais pas de chance.
L'erreur que j'obtiens est:
Missing argument 1 for ProductsController::postUpdate()
Il est intéressant de noter que si je tape directement dans l'URL:
http://localhost/laravel/public/admin/products/update/3
Il fonctionne et l'élément avec l'id 3 est modifié amende.
Donc n'importe qui peut aider et informer moi comment transmettre l'id avec un formulaire?
Merci beaucoup
OriginalL'auteur Benji40 | 2015-01-19
Vous devez vous connecter pour publier un commentaire.
Le premier Problème qui se pose ici est la suivante:
la
{{product->id}}
est faux de deux façons:{{$product->id}}
Soit vous avez de l'écrire de cette façon:
ou vous donnez votre route un nom dans votre
routes.php
fichier et de le faire de cette façon:Je préfère la seconde.
Vous pouvez également regarder dans Modèle De Formulaire De Le Bingin
Cette erreur signifie que vous essayez d'accéder à une méthode du contrôleur n'avez pas OU que vous avez un contrôleur qui est des espaces, MAIS vous n'avez pas accès à ce contrôleur avec son nom COMPLET
Oh, jamais l'esprit, j'ai ajouté de la Méthode =>"récupérer" pour la forme (comme ma méthode est getUpdate et pas de publication par défaut) et tout s'est bien passé. Je vais lire sur la reliure, bon appel. Merci beaucoup!
OriginalL'auteur ITroubs