php – 如何构建需要特定URL查询参数的Laravel路由?

前端之家收集整理的这篇文章主要介绍了php – 如何构建需要特定URL查询参数的Laravel路由?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有这样的网址:

> localhost / admin / users /< ---主管理员用户页面
> localhost / admin / users /?data = refresh< ----从该页面发出的典型ajax请求
还有一个像这样的简单控制器:

class UsersController extends Controller {

     public function index()

         // call some services
         // return a view
     }

     public function dataRefresh {

         // call some services
         // return some JSON
     }
}

这是我的routes.PHP我正在努力:

Route::get('admin/users',array('as' => 'admin.users','uses' => 'Admin\Users\UsersController@index'));
    Route::get('admin/users????',array('before' => 'ajax','as' => 'admin.users','uses' => 'Admin\Users\UsersController@dataRefresh'));

在我的第二个路径中我需要做什么才能要求URL查询参数?数据并且还需要将其设置为data = refresh?我如何确保它不与其他路线冲突?

注意:
我知道这可能不被某些人认为是“漂亮的URL”.我在适当的时候实现了漂亮的URL / slugs,但是我也认为在很多情况下查询参数更清晰更清晰(即让用户清楚地了解页面URL的哪一部分用于过滤数据) datagrid …并确保用户可以删除参数而不会导致页面中断或丢失).谷歌自己以及许多其他声誉良好的网站都是这样做的.

注意:我已将ajax路由过滤器应用于第二个路由.我还设置了路由指向我的控制器中的dataRefresh方法.

这是我所拥有的.有任何想法吗?

Laravel不使用uri的查询部分进行路由,对于localhost / admin / users?data = refresh你可以使用这样的东西:
Route::get('admin/users',function(){
    $data = Input::get('data');
});

您可以使用localhost / admin / users?data = refresh向路由发出请求.您可以这样声明您的路线:

Route::get('admin/users',array('before' => 'ajax:data','uses' => 'Admin\Users\UsersController@dataRefresh'));

这里,刷新传递给路由过滤器,并在第三个参数($param)中可用,因此您可以在$param中检索刷新.创建过滤器,如下所示:

Route::filter('ajax',function($route,$request,$param){

    // This will give query string 'refresh'
    // if you passed it as http://domain.com?data=refresh
    $data = $request->get($param);

    // You can retrieve the $param,third argument
    // if you pass a parameter,i.e. 'refresh'
    // param will contain 'refresh'
});
原文链接:https://www.f2er.com/laravel/445126.html

猜你在找的Laravel相关文章