Php 控制器的多个可选参数

Php 控制器的多个可选参数,php,laravel,laravel-5,Php,Laravel,Laravel 5,我需要将2个可选参数传递给控制器,路径为: Route::get('/products/{start?}/{end?}', 'productsController@index'); 在产品控制器中,我有: public function index($start = NULL, $end = NULL) { // .... } 如果两个参数都被传递,这很好,但如何处理这种情况,我们是否只需要传递$end参数?因为当只传递一个参数时,它总是作为$start参数传递。我认为您应该介绍ro

我需要将2个可选参数传递给控制器,路径为:

Route::get('/products/{start?}/{end?}', 'productsController@index');
在产品控制器中,我有:

public function index($start = NULL, $end = NULL) {
    // ....
}

如果两个参数都被传递,这很好,但如何处理这种情况,我们是否只需要传递$end参数?因为当只传递一个参数时,它总是作为$start参数传递。

我认为您应该介绍route add param products?start=&end=


你很容易处理它。

我认为你应该涵盖路线添加参数产品?开始=&结束=

您可以轻松处理它。

在Route.php文件中

在控制器文件中

在Route.php文件中

在控制器文件中


如何将参数传递给route函数?@danish-khan-I-从URL,例如:…/products/a/b如果您仅尝试使用第二个route参数,URL会是什么样子?如果只使用第一个URL,URL会是什么样子?这些URL的外观有什么不同吗?@lagbox-可能类似于:products/end:value,尽管这与默认的GET参数传递样式没有太大区别。是否存在只使用start或始终仅使用end或两者都使用的情况?如何将参数传递到route函数?@danish-khan-I-从URL,例如:…/products/a/b对于您来说,如果您仅尝试使用第二个路由参数,URL会是什么样子?如果只使用第一个URL,URL会是什么样子?这些URL的外观有什么不同吗?@lagbox-可能类似于:products/end:value,尽管这与默认的GET参数没有太大区别。是否存在只使用start或始终仅使用end或两者都使用的情况?谢谢,这会起作用,这意味着laravel的路由参数传递样式/{param?}是无用的,当我们可能有超过1个参数时?不,这意味着在这种情况下不能跳过作为段的参数。。。如果没有第一段,则无法到达第二段。。如果只有一个段,那么就没有第二个段您的端点是/products和start/end是过滤器,因为应该使用过滤器查询字符串,所以/products?start=&end=对doThanks来说是正确的,这会起作用,只是这意味着laravel的路由参数传递样式/{param?}是无用的,当我们可能有一个以上的参数时?不,这意味着你不能跳过参数,在这种情况下,这些参数是段。。。如果没有第一段,则无法到达第二段。。如果只有一个段,那么就没有第二个段您的端点是/products和start/end是过滤器,因为应该使用过滤器查询字符串,所以/products?start=&end=是正确的选择
Route::get('/products', 'productsController@index');

public function index() {
    $start = request()->input('start');
    $end = request()->input('end');
     // ....
}
Route::get('/products', 'productsController@create');
public function create(Request $request) {
    $start = $request->start;
    $end = $request->end;
}
Route::get('/products/{start?}/{end?}', 'productsController@index');

public function index($start= null, $end= null)
    {
        $variable = DB::table('name table')->paginate(16);
        if($start!=null) {
            //some code
        }
        if($end!=null) {
            //some code
        }
        return somethingt;
    }