Laravel France

Passer un argument dans une ressource create

Avatar de Romain
Romain

Bonjour,

Je réalise un backoffice qui génére des fonds de carte. Sur ces fonds de carte on peut ajouter des points d'intéret.

J'ai donc fait une ressource POI et je souhaite utiliser "create" pour ajouter un point d'intéret. Cependant , j'ai besoin de pouvoir passer en argument l'"Id" de la carte

J'ai également une route

    <pre><code>
 route('poi.create',$carte->id )
  </pre></code>

J'ai le message d'erreur suivant : Too few arguments to function App\Http\Controllers\BoPoi::create(), 0 passed and exactly 1 expected

Une idée ? Merci par avance

Posté il y a 4 mois
Avatar de KYoann
KYoann

Salut,

La route est déclaré comment ?

Est tu sur que ta variable $carte->id est valide dans la vue ou tu déclare le lien ?

Personnellement, j'ai tendance à écrire mes routes comme ceci route('poi.create',['id' => $carte->id] )

Posté il y a 4 mois
Avatar de Romain
Romain

La route est déclarée comme une ressource : Route::resource('admin/poi', 'BoPoi');

$carte->id est valide( et vaut "5") et retourne : admin/poi/create?5

Posté il y a 4 mois
Avatar de bestmomo
bestmomo

Salut,

Dans une ressource pour create on n'a pas d'argument parce que logiquement ça renvoie le formulaire de création. Et de façon aussi très logique ça ajoute la valeur comme un paramètre dans l'url. C'est pourquoi tu obtiens un erreur.

Là si je comprends bien tu veux juste renvoyer ta ressource, donc la méthode adpatée est plutôt show. i tu n'as pas les idées bien claires concernant les ressources tu peux lire la documentation.

Posté il y a 4 mois
Avatar de KYoann
KYoann

Au pire, si on veux garder la logic d'avoir une ressource Create pour le renvoi d'une vue de Création, tu peu ajouter des parametres lors de la déclaration des routes resources

Route::resource('admin/poi','BoPoi',['parameters' =>[
        'create' => 'id',
    ]]);
Posté il y a 4 mois
Avatar de Romain
Romain

@Kyoann : J'aimais bien l'idée , mais ca ne change rien ça retourne toujours : admin/poi/create?5 @Bestmomo : en fait , j'ai bien un formulaire creation, mais lorsque que le point est créé je dois l'associer a une carte. Dans mon form j'aivais prévu un hidden avec l'id de la carte parente.

Merci de votre aide

je pesne que je vais passer par un controleur classique. Merci

Posté il y a 4 mois

Vous ne pouvez pas répondre à ce sujet.