【问题标题】:best practice Laravel PageController最佳实践 Laravel PageController
【发布时间】:2018-05-09 09:43:32
【问题描述】:

我想知道在一个控制器中是否有静态页面的最佳实践。我想到了一个处理所有页面的 PageController。动态执行此操作的最佳做​​法是什么?这些页面只包含一些文本和 html。

【问题讨论】:

  • 如果它们是静态的,为什么还要为它们提供大型 PHP 框架?您的网络服务器或小型会话管理 PHP 代码库的速度无限快。
  • 你想用单个控制器和路由来做这个吗?
  • 不要认为这里有最佳实践。让 PagesController 处理静态页面没有任何问题。如果你真的很懒,你也可以直接从你的路线返回视图。
  • @loek 只有几页是静态的。
  • @Draity 你可以在路由文件中这样写:Route::view('/about', 'pages.about');

标签: php laravel dynamic static controller


【解决方案1】:

通常,您希望将它们放在哪里是个人喜好,在大型系统中,我会将它们放在相关的控制器中,例如。如果我有一个 TasksController 并且我有一个静态任务信息页面,那将在 TasksController 中。如果它是系统的前向部分,我通常有一个 WebsiteController 来处理任何对公众可见的东西。

另一种可能的方法是使用类似的东西重定向路由本身:

Route::view('/taskinfo', 'tasks.information');

这实际上是最适合您的问题。我更喜欢第一个选项。

【讨论】:

    【解决方案2】:

    您可以在下面的代码中实现相同的效果 -

    路线 -

    Route::get('/information/{id}','InformationController@show'); 
    

    控制器功能 -

    public function show($id,Request $request)
    {
      $data = array();
      $static_page_names =  ['static1','static2']; //array that contains all static pages name
      if(in_array($id, $static_page_names)){
        //static page code here 
        return view('/pages/static_page_template',$data);
      }else{
        //dynamic code here
        return view('/pages/dynamic_page_template',$data);
      }
    }
    

    您可以从浏览器访问该页面-

    website-url/information/id or website/information/static-page-name
    

    可能对你有帮助

    【讨论】:

      猜你喜欢
      • 2021-07-03
      • 2016-03-23
      • 1970-01-01
      • 2015-05-31
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 2018-10-03
      相关资源
      最近更新 更多