Bonjour,
Voila je rencontre un petit problème avec mon code.
Je cherches, lors d'une creation d'un tome, faire l'association entre la table manga et volume. La table volume à la clé étrangére de la table manga.
Dans la view Manga
<li class="nav-item">
<span class="fa fa-book" style="color: white"></span>
<a href="{{action('VolumesController@create', $id)}}">Ajouter un volume</a>
</li>
Dans la view form pour la creation du volume
{!! Form::model($volumes, ['url' => action("VolumesController@$action", $volumes, $id), 'method' => $action == "store" ? "Post" : "Put"]) !!}
<div class="form-group">
<label class="col-md-4 control-label">Numéro</label>
<div class="col-md-6">
{!! Form::input('number','number_Volume', null, ['class' => 'form-control']) !!}
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Nombre de pages</label>
<div class="col-md-6">
{!! Form::input('number','number_Pages_Volume', null, ['class' => 'form-control']) !!}
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Sauvegarder
</button>
</div>
</div>
{!! Form::close() !!}
Dans le fichier route
Route::get('volumes/create/{id}', [
'as' => 'volumes.create',
'uses' => 'VolumesController@create'
]);
Route::resource('volumes', 'VolumesController', ['except' => 'create']);
Dans le controller Volume
public function store(VolumesRequest $request, $id)
{
var_dump($id); die;
}
Cependant, j'arrive pas à faire passer le second paramétre
Erreur : Missing argument 2 for App\Http\Controllers\VolumesController::store()
Hello,
Tu utilises Route:resource pour ton Model volume
Du cou par défaut la méthode store ne prendra pas d'id en paramètre juste une request .
d'ou l'erreur Missing argument 2 .
pour régler ton problème il faut que tu enlèves ton $id dans l'url que tu gèneres, ajouter dans ton formulaire un champ input qui va contenir l'id du manga :
{!! Form::input('hidden','manga_id', $id, ['class' => 'form-control']) !!}
Et ta méthode store ressemblera à ça :
//penses à vérifier dans ton VolumeRequest que manga_id existe en BDD
public function store(VolumesRequest $request)
{
$data = $request->all();
dd($data); //array qui contient tes champs
}
Je te conseil de regarder le tuto de Grafikart sur les resources REST https://www.grafikart.fr/tutoriels/php/rest-503 .
ça t'aidera à comprendre le principe et à ne plus faire cette erreur