Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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
Php 如何修复具有相似模式的路由_Php_Regex_Laravel_Laravel 5.1 - Fatal编程技术网

Php 如何修复具有相似模式的路由

Php 如何修复具有相似模式的路由,php,regex,laravel,laravel-5.1,Php,Regex,Laravel,Laravel 5.1,我想创建这些url结构 1) domain.com/city/a-really-long-slug/optional-page 2) domain.com/city/optional-parameter/query-string-appended-string 我怎么修第二条路线? 如果我提供可选参数,它会工作,但如果我跳过可选参数,它会失败 domain.com/city/query-appended-string Fails! (Catches first route. Expects q

我想创建这些url结构

1) domain.com/city/a-really-long-slug/optional-page
2) domain.com/city/optional-parameter/query-string-appended-string
我怎么修第二条路线? 如果我提供可选参数,它会工作,但如果我跳过可选参数,它会失败

domain.com/city/query-appended-string
Fails! (Catches first route. Expects query-appended-string to be a slug)

domain.com/city/optional-parameter/query-appended-string
Works!
路线:

Route::group(['prefix' => '{city_name}', 'middleware' => 'MyMiddleware'], function(){
    Route::get('{slug}/{page?}', array('as' => 'url-structure-1', 'uses' => 'HomeController@createProfile'))
    ->where(array(
        'city_name'   => '[a-zA-Z ]+',
        'page'   => '((?i)photos(?-i)|(?i)videos(?-i)|(?i)reviews(?-i)|(?i)more(?-i))',
        'slug'  => '[a-zA-Z-]+'
    ));
    Route::get('{area?}/{query}-appended-string', array('as' => 'url-structure-2', function($city_name, $area="default", $query){
        return func_get_args();
    }))
    ->where(array(
        'city' =>   '[a-zA-Z-]+', 
        'area' =>   '[a-zA-Z-]+', 
        'query',    '[a-zA-Z-]+'
    ));
});

您计划如何区分这些路线?你不能给第二条路线添加一个关键词吗?你打算如何区分这些路线?你不能给第二条路线添加一个关键字吗?