1. 程式人生 > >laravel學習筆記(五)控制器與路由

laravel學習筆記(五)控制器與路由

頁面 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學習筆記(五)控制器與路由