【问题标题】:Laravel 4 Dynamic routing - Overkill?Laravel 4 动态路由 - 矫枉过正?
【发布时间】:2013-12-23 12:15:10
【问题描述】:

我们正在建立一个可以处理的 Laravel 4 基础项目。我想创建一个默认路由规则,让开发人员可以轻松地打开新页面,而不必担心向控制器添加路由,而是可以为任何更复杂的路由/控制器添加其他路由。

我创建了以下路由规则,但我想知道它是否有点矫枉过正。我自己对 Laravel 很陌生,所以我不确定我是否会以错误的方式处理这个问题,所以我想我会发布它并获得一些反馈。

Route::any('{controller}/{action?}/{args?}', function($controller, $action = 'index', $args = '')
{
    $cont = "Controller";
    $notFound = "NotFound";
    $params = explode("/", $args);
    $app = app();

    if (!class_exists($controller.$cont) || !function_exists($contName.$cont.".".$action)) {
        $controller = $notFound;
        $action = 'index';
    }

    $controller = $app->make($controller.$cont);
    return $controller->callAction($app, $app['router'], $action, $params);

 })
->where(array(
    'controller' => '[^/]+',
    'action' => '[^/]+',
    'args' => '[^?$]+'
));

【问题讨论】:

  • 请手动编写每条路线,直到您开始这样做,您才会意识到它的好处。
  • 我认为您在这里概述的内容绝对是矫枉过正。添加另一条路线并不难,这样做有很多好处。

标签: php laravel laravel-4


【解决方案1】:

如果您有大约 5 条路线,那么这样做没有多大意义,但是如果您有大量遵循这种模式的路线,那就很有意义了。只要确保你测试你的代码,这样它就不会在生产中中断。

顺便说一句,.NET MVC 映射默认路由的方式与您的操作方式非常相似,这使得它非常方便,因为您不必手动映射每条路由。所以我想这是完全正常的。

【讨论】:

    猜你喜欢
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 2012-08-17
    • 2013-01-10
    • 2014-11-18
    相关资源
    最近更新 更多