laravel學習筆記(五)控制器與路由
阿新 • • 發佈:2019-01-15
頁面 ret nat 復雜 引用 其中 namespace fun 判斷
當業務邏輯比較復雜時,可以通過控制器+路由來實現頁面加載,舉例如下:
1、新建控制器
在app/Http/Controllers文件夾下新增控制器,如新增app/Http/Controllers/Common/PageController.php控制器:
namespace App\Http\Controllers\Common; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\View; class PageController extends Controller { /** * 顯示頁面視圖 * @param type $strViewParam1 * @param type $strViewParam2 * @return type */ public function show($strViewParam1 = "", $strViewParam2 = "") { //如一二級目錄都為空,跳轉到home頁 if ($strViewParam1 === ‘‘ && $strViewParam2 === ‘‘) { $strViewParam1 = $strViewParam2 = ‘home‘; } else if ($strViewParam1 !== ‘‘ && $strViewParam2 === ‘‘) {//如二級路徑為空,則跳轉到home文件夾 $strViewParam2 = $strViewParam1; $strViewParam1 = ‘home‘; } //判斷視圖是否存在,如不存在,跳轉到404錯誤頁面 if (!View::exists($strViewParam1 . ‘.‘ . $strViewParam2)) { return redirect(‘error/404‘); } return view($strViewParam1 . ‘.‘ . $strViewParam2); } }
其中由於要調用View::exists方法,所以需增加引用Illuminate\Support\Facades\View
2、修改路由
修改routes/web.php文件,改為調用控制器:
Route::get(‘/‘, ‘Common\PageController@show‘); Route::get(‘{viewname}‘, ‘Common\PageController@show‘); Route::get(‘{folder}/{viewname}‘, ‘Common\PageController@show‘);
其中@前面的Common\PageController表示是App\Http\Controllers下的Common\PageController控制器,@後面的show表示是調用控制器中的show方法。
laravel學習筆記(五)控制器與路由