【问题标题】:Two Controllers and 1 View in LaravelLaravel 中的两个控制器和一个视图
【发布时间】:2016-11-03 21:00:00
【问题描述】:

关于 Laravel 5.1 中的一些计算,我有一个问题需要解决,到目前为止,我发现的最佳解决方案是创建两个不同的控制器,一个用于处理特定项目的计算:

Route::get('company/convert/{note}','ScenarioController@NoteConvert');

一个用于所有项目:

Route::get('company/convert','ScenarioController@AllNotesConvert'); 

两者都将使用渲染相同的视图。

我的问题是:这样做是一个好习惯吗?

在我看来,一个很好的解决方案是仅使用一条路线并通过请求接收 1 个特定注释或所有这些注释在某个变量中。 比如:

$http.get('/company/convert/',data)

data 将收到 1 个或所有将被转换的笔记。

P.S.:我正在使用 AngularJS 来调用此路由。

【问题讨论】:

    标签: php angularjs laravel


    【解决方案1】:

    对我来说最好的方法是在 url 中传递一个可选参数并在控制器上检查它。

    【讨论】:

      【解决方案2】:

      我认为您的任务是使用视图中的注释参数生成所有项目的数据和特定数据的过滤器。

      我建议你创建这样的路线

      Route::controller('company', 'ScenarioController');
      

      然后创建一个具有两个这样的功能的控制器

        public function getIndex()
                {
                   return view('convert');
      
            }
      

      这里 convert 是名称视图刀片。

       public function postFilter($note)
            {
             $x= // do what you want
             return view('convert', compact('x'));      
            }
      

      然后使用复选框在刀片中添加一个过滤器,并将表单操作 url 设置为 “公司/过滤器/{note}”。

      这是我认为更好的做法。

      参考这里的隐式路由。 https://laravel.com/docs/5.1/controllers

      【讨论】:

        【解决方案3】:

        如果您更喜欢在控制器中使用一种方法,则必须稍微更改您的路线:

        Route::get('company/convert/{note?}','ScenarioController@NoteConvert');
        

        你的方法会是这样的

        public function NoteConvert($note=null)
        {
            if ($note == null) {
               // do all convertions
               return view()
            }
            // single convertion
           ...
        }
        

        这种方式 NoteConvert 方法将是处理多个和单个转换的方法。

        别忘了删除

        Route::get('company/convert','ScenarioController@AllNotesConvert'); 
        

        不再需要了

        编辑: https://laravel.com/docs/5.2/routing#parameters-optional-parameters

        【讨论】:

        • 那个?表示一个可选参数,对吗?如果是这样,我认为这是一个很好的解决方案
        • 是的,如果您查看文档,您会看到不同的路由选项,例如?对于可选参数
        • 我使用了这种方法并为我工作。谢谢你们的帮助o//
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多