将参数从laravel中的路径传递给控制器

时间:2012-09-28 21:09:50

标签: php laravel

这是LARAVEL 3的问题

给出以下路线

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

我想使用的网址

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

我希望能够在我的控制器中使用(:any)值。

我的控制器看起来像

class Groups_Controller extends Base_Controller {

    public $restful = true;    

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


}

这怎么可能呢?我尝试了一些事情,包括以下

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

但它不起作用。

更新

无论何时我尝试传递上面显示的参数,我都会收到404错误。

感谢您的帮助!

4 个答案:

答案 0 :(得分:28)

添加参数不需要任何特殊内容。就像你拥有它一样。

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;
    }  


}

答案 1 :(得分:18)

这是您需要的一行代码。

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

建议:使用CamelCase而不是下划线,试试&关注PSR-* guidelines

希望它有所帮助。

答案 2 :(得分:10)

你可以像这样添加它们

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

答案 3 :(得分:2)

    $ 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

希望这能解决您的问题。 感谢