Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Laravel 4路由-如果不满足条件,可以跳过路由_Php_Laravel_Laravel 4_Routing_Laravel Routing - Fatal编程技术网

Php Laravel 4路由-如果不满足条件,可以跳过路由

Php Laravel 4路由-如果不满足条件,可以跳过路由,php,laravel,laravel-4,routing,laravel-routing,Php,Laravel,Laravel 4,Routing,Laravel Routing,因此,我们在数据库中有大量的内容,我们称之为这些文章。项目的路径从应用程序根开始,可以包含斜杠。因此,我们希望搜索数据库,看看我们是否匹配一篇文章,如果不匹配,则跳过该路由,并给其他路由响应的机会 在西纳特拉(我相信这启发了拉拉维尔的路线),你可以选择。也许正是这个让我误入歧途 Route::get( '{uri}', function( URI $uri ) { // check database, if we find a record we'll need to pass it to

因此,我们在数据库中有大量的内容,我们称之为这些文章。项目的路径从应用程序根开始,可以包含斜杠。因此,我们希望搜索数据库,看看我们是否匹配一篇文章,如果不匹配,则跳过该路由,并给其他路由响应的机会

在西纳特拉(我相信这启发了拉拉维尔的路线),你可以选择。也许正是这个让我误入歧途

Route::get( '{uri}', function( URI $uri ) {
  // check database, if we find a record we'll need to pass it to the appropriate controller
  // we'll have a class that handles this responsiblity

  // pass if we don't find anything
} )->where('uri', '.*');

Route::get( 'other/page', 'OtherController@sayHello' );
这个问题谈到了这一点,虽然我看不出过滤器如何满足这一点,但它们只是截取并给您一个停止路由执行的机会(抛出异常、重定向到特定路由等),您不能
返回FALSE没有错误。虽然这种方法似乎不存在(在4.2中),但存在一个错误

有什么想法吗


除此之外,我们还考虑将此逻辑包含在包中,以便在应用程序之间共享,并想知道您是否可以影响包提供的路由的执行顺序?

您可以拥有一组路由,这些路由包含在与之匹配的所有路由中。如果该组失败,则跳到下一节

Route::group(array('before' => 'auth'), function()
{
    Route::get('/', function()
    {
        // Has Auth Filter
    });

    Route::get('user/profile', function()
    {
        // Has Auth Filter
    });   
});

我已经阅读了文档,但发现它缺乏灵活性。例如,我们可能无法创建此嵌套,或者希望创建此嵌套。如果我们希望此路由在包内独立发生,然后在无需任何操作的情况下传递到下一个路由(在应用程序中),该怎么办。