我對laravel很新穎,從我在laravel MVC應用程序中看到的,大多數教程使用控制器通過View::make('[PATH]')
返回視圖,因此典型場景將會像這樣: 應用程序/ routes.php文件更好的路線和創建視圖
Route::get('search', array(
'uses' => '[email protected]',
'as' => 'search.index'
));
Route::get('search_result', array(
'uses' => '[email protected]',
'
));
應用程序/控制器/ SearchControllers.php
public function newSearch()
{
return View::make('search');
}
public function runSearch()
{
//validate and query search
return View::make('search')
->with('result',$result);
}
哪個都好,但如果以後Ø ñ我們決定重組視圖並將search.php
放在web/search.php
例如以及其他相關的視圖,我們是不是必須跟蹤所有控制器來更新視圖的路徑?
取而代之的,是沒有任何缺點,如果我是做route.php爲「查看工廠」,而不是像這樣:
Route::get('search', array('as' => 'search.index', function()
{
return View::make('search');
}));
Route::get('search_query', array(
'uses' => '[email protected]'
));
Route::get('search_result', array('as' => 'search.result', function()
{
return View::make('search')
->with('result',Session::get('result'));
}));
這將仍然有效,但需要一個額外的途徑,使該視圖,但如果我們需要重構或更改視圖的名稱,我們只需跟蹤並更新route.php。
那麼將有任何問題用控制器寫這條路線?或者還有其他更好的方法來將視圖路徑從控制器中抽象出來嗎?
那麼在這個例子中,我並沒有附加修改後的控制器的任何代碼,但是我不會在路由上做任何業務邏輯處理,因爲這是控制器的用途,除非您指的是附件參數(結果)作爲業務邏輯。我得到這是如何編寫MVC應用程序的常見做法,但我只是想知道在這種情況下,如果有更好的方式來返回View,除了編寫一個RESTful控制器。 – har2vey
@ har2vey我在說你現在所擁有的東西我可以接受,但是除了單一的回報之外,任何東西都應該在控制器中。 –