Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个“变量”的Laravel路线变量-&引用;_Laravel - Fatal编程技术网

具有多个“变量”的Laravel路线变量-&引用;

具有多个“变量”的Laravel路线变量-&引用;,laravel,Laravel,因此,我在我的laravel应用程序中有一个类别路由,如下所示: Route::get('all-{category}-listings', 'CategoryController@index')->name('category'); 当我转到以下URL localhost:8000/所有测试列表时,它工作正常, 但是当一个类别的名称中也有一个连字符时,它会给我一个404,例如localhost:8000/all测试列表 有人知道解决这个问题的方法吗?您可以在路线上使用“正则表达式约束”

因此,我在我的laravel应用程序中有一个类别路由,如下所示:

Route::get('all-{category}-listings', 'CategoryController@index')->name('category');
当我转到以下URL localhost:8000/所有测试列表时,它工作正常, 但是当一个类别的名称中也有一个连字符时,它会给我一个404,例如localhost:8000/all测试列表

有人知道解决这个问题的方法吗?

您可以在路线上使用“正则表达式约束”来启用带破折号的类别:

Route::get('all-{category}-listings', 'CategoryController@index')
->where('category', '[A-Za-z0-9-]+')
->name('category');

您可以在路线上使用“正则表达式约束”启用带破折号的类别:

Route::get('all-{category}-listings', 'CategoryController@index')
->where('category', '[A-Za-z0-9-]+')
->name('category');

如果希望管线参数始终受 给定正则表达式,可以使用pattern方法。你应该 在系统的引导方法中定义这些模式
路由服务提供商

一旦定义了模式,它将自动应用于所有 使用该参数名称的路由:

如果希望管线参数始终受 给定正则表达式,可以使用pattern方法。你应该 在系统的引导方法中定义这些模式
路由服务提供商

一旦定义了模式,它将自动应用于所有 使用该参数名称的路由:

Route::get('all-{category}-listings', function ($category) {
    // {category} has to be alpha numeric (lowercase), but can include a dash
});