Php Laravel中的两个控制器和一个视图
关于Laravel 5.1中的一些计算,我有一个问题需要解决,到目前为止,我找到的最佳解决方案是创建两个不同的控制器,一个用于处理特定项目的计算:Php Laravel中的两个控制器和一个视图,php,angularjs,laravel,Php,Angularjs,Laravel,关于Laravel 5.1中的一些计算,我有一个问题需要解决,到目前为止,我找到的最佳解决方案是创建两个不同的控制器,一个用于处理特定项目的计算: Route::get('company/convert/{note}','ScenarioController@NoteConvert'); 和一个用于所有项目: Route::get('company/convert','ScenarioController@AllNotesConvert'); 两者都将使用渲染相同的视图 我的问题是:这样做
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');
不再需要了
编辑:
?表示可选参数,对吗?如果是这样,我认为这是一个简洁的解决方案是的,如果你看一下文档,你可以看到不同的路由选择,例如?对于可选参数,我使用这种方法并为我工作。谢谢你们的帮助//