[php] Passing parameter to controller from route in laravel

THIS IS A QUESTION FOR LARAVEL 3

Given the following route

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

And the URL I would like to use,

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

I would like to be able to use the (:any) value in my controller.

My controller looks like

class Groups_Controller extends Base_Controller {

    public $restful = true;    

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


}

How is this possible to do? I have tried a few things including the following

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

but it did not work.

UPDATE

Anytime I try to pass in the arguments as show above i get a 404 error.

Thanks for the help!

This question is related to php laravel

The answer is


This is what you need in 1 line of code.

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

Suggestion: Use CamelCase as opposed to underscores, try & follow PSR-* guidelines.

Hope it helps.


    $ 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');

campaign.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

Hope this solves your problem. Thanks


You can add them like this

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