1. 程式人生 > >laravel學習筆記(二)路由與檢視

laravel學習筆記(二)路由與檢視

laravel中檢視的用途是用來存放應用程式中HTML內容,並且能夠將你的控制器層(或應用邏輯層)與展現層分開。檢視檔案目錄為 resources/views ,示例檢視如下:

1、檔名:檢視名.blade.php

2、獲取檢視對應的html內容:

return view('資料夾.檢視名');

  如需傳遞引數到檢視中,可以通過傳遞陣列的方式傳遞,並在檢視中通過blade模板語言打印出來,如下:

return view('資料夾.檢視名',['引數名'=>'引數值']);

  此檢視檔案位置:resources/views/資料夾/檢視名.blade.php,內容如下

<html>
	<body>
  	<h1>Hello, {{ $引數名}}</h1>
	</body>
</html>

3、路由中設定檢視查詢

  在routes/web.php中按如下方式配置,控制頁面預設顯示、一級路徑顯示和二級路徑顯示,如果檢視不存在,則跳轉到自定義的404檢視中。

  下方程式碼中判斷檢視是否存在的方法View::exists也可以用view()->exists來代替

Route::get('/', function() {
    if (View::exists('index')) {
        return view('index');
    } else {
        return redirect('error/404');
    }
});

Route::get('{viewname}', function($viewname) {
    if (View::exists($viewname)) {
        return view($viewname);
    } else {
        return redirect('error/404');
    }
});

Route::get('{folder}/{viewname}', function($folder, $viewname) {
    if (View::exists($folder . '.' . $viewname)) {
        return view($folder . '.' . $viewname);
    } else {
        return redirect('error/404');
    }
});

  為避免使用者輸入了不存在的路由跳轉(如輸入了三級路徑),在app/Exceptions/Handler.php中設定異常處理

  1)引用相應的異常型別檔案路徑

use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;
use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;

  2)render中增加異常型別判斷

    public function render($request, Exception $exception) {
        if ($exception instanceof MethodNotAllowedHttpException || $exception instanceof NotFoundHttpException) {
            return redirect('error/404');
        }
        return parent::render($request, $exception);
    }