43 votes

Passer un paramètre à un contrôleur à partir d'une route dans Laravel

C'EST UNE QUESTION POUR LARAVEL 3

Compte tenu de l'itinéraire suivant

Route::get('groups/(:any)', array('as' => 'group', 'uses' => 'groups@show'));

Et l'URL que je souhaite utiliser,

http://www.example.com/groups/1

J'aimerais pouvoir utiliser le (:any) dans mon contrôleur.

Mon contrôleur ressemble à

class Groups_Controller extends Base_Controller {

    public $restful = true;    

    public function get_show($groupID) {
        return 'I am group id ' . $groupID;
    }  

}

Comment cela est-il possible ? J'ai essayé plusieurs choses, dont les suivantes

Route::get('groups/(:any)', array('as' => 'group', 'uses' => 'groups@show((:1))'));

mais cela n'a pas fonctionné.

MISE À JOUR

Chaque fois que j'essaie de passer les arguments comme indiqué ci-dessus, j'obtiens une erreur 404.

Merci pour votre aide !

33voto

dardub Points 1583

Vous n'avez besoin de rien de particulier pour ajouter des paramètres. C'est comme vous l'avez fait.

Route::get('groups/(:any)', array('as' => 'group', 'uses' => 'groups@show'));

class Groups_Controller extends Base_Controller {

    public $restful = true;    

    public function get_show($groupID) {
        return 'I am group id ' . $groupID;
    }  

}

28voto

Eddy Ferreira Points 127

C'est ce dont vous avez besoin en une ligne de code.

Route::get('/groups/{groupId}', 'GroupsController@getShow');

Suggestion : Utiliser la CamelCase plutôt que les caractères de soulignement, essayer et suivre. Lignes directrices sur les RSP .

J'espère que cela vous aidera.

11voto

shaggy Points 3

Vous pouvez les ajouter comme suit

  Route::get('company/{name}', 'PublicareaController@companydetails');

3voto

user2592890 Points 300
    $ php artisan route:list
  +--------+--------------------------------+----------------------------+--    -----------------+----------------------------------------------------+---------  ---+
  | Domain | Method                         | URI                        |  Name              | Action                                             |    Middleware |
  +--------+--------------------------------+----------------------------+-------------------+----------------------------------------------------+------------+
  |        | GET|HEAD                       | /                          |                           
  |        | GET                            | campaign/showtakeup/{id}   | showtakeup         | App\Http\Controllers\campaignController@showtakeup | auth       |     |

routes.php

  Route::get('campaign/showtakeup/{id}', ['uses' =>'campaignController@showtakeup'])->name('showtakeup');

campagne.showtakeup.blade.php

 @foreach($campaign as $campaigns)

   //route parameters; you may pass them as the second argument to the method:

   <a href="{{route('showtakeup', ['id' => $campaigns->id])}}">{{ $campaigns->name }}</a>

            @endforeach

J'espère que cela résoudra votre problème. Merci de votre compréhension.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X