Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.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中的两个控制器和一个视图_Php_Angularjs_Laravel - Fatal编程技术网

Php Laravel中的两个控制器和一个视图

Php Laravel中的两个控制器和一个视图,php,angularjs,laravel,Php,Angularjs,Laravel,关于Laravel 5.1中的一些计算,我有一个问题需要解决,到目前为止,我找到的最佳解决方案是创建两个不同的控制器,一个用于处理特定项目的计算: Route::get('company/convert/{note}','ScenarioController@NoteConvert'); 和一个用于所有项目: Route::get('company/convert','ScenarioController@AllNotesConvert'); 两者都将使用渲染相同的视图 我的问题是:这样做

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

Route::get('company/convert/{note}','ScenarioController@NoteConvert');
和一个用于所有项目:

Route::get('company/convert','ScenarioController@AllNotesConvert'); 
两者都将使用渲染相同的视图

我的问题是:这样做是一种好的做法吗?

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

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

其中,
数据
将收到1张或所有要转换的票据


注意:我正在使用AngularJS来调用此路由。

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

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

我建议您创建这样的路线

Route::controller('company', 'ScenarioController');
然后创建一个具有如下两个函数的控制器

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

      }
这里是名称视图刀片

 public function postFilter($note)
      {
       $x= // do what you want
       return view('convert', compact('x'));      
      }
然后使用复选框在刀片中添加一个过滤器,并将表单操作url设置为 “公司/过滤器/{note}”

我认为这是更好的做法


请参阅此处的隐式路由

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

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'); 
不再需要了

编辑:

?表示可选参数,对吗?如果是这样,我认为这是一个简洁的解决方案是的,如果你看一下文档,你可以看到不同的路由选择,例如?对于可选参数,我使用这种方法并为我工作。谢谢你们的帮助//