引言
使用laravel實現一個最簡單的動態頁面,牽涉到laravel的路由註冊方式, 控制器書寫方式,以及blade靜態模板的使用。雖然功能很小,卻是一個精簡版的hello world。
下面開始我們的程式設計之旅。
建立laravel應用首先我們通過命令列安裝laravel應用。為了方便建立,先全域性安裝 laravel installer, 在命令列中執行下面的指令:
composer global require laravel/installer
安裝成功後,laravel 二進位制檔案就會註冊到環境變數,在命令列中檢視安裝是否成功:
laravel -V
安裝成功,輸出類似下面這樣:
Laravel Installer 3.1.0
要執行 laravel 5.5 + 版本,需要我們安裝 PHP 7+ 版本及以上。建立一個專案目錄, 比如名字叫 ~/code,然後使用下面的命令建立laravel專案:
laravel new hackerpair
正常的建立流程,省略中間包的建立和拉取,大致如下:
註冊路由現在建立一個靜態網頁,我們先不填充任何動態的變數資料。在 resources/views/ 目錄下, 新建一個html檔案 welcome.blade.php ,使用任意順手的編輯器,寫入以下內容:
在本檔案內,我們今聲明了一個最簡單的html結構,使用H1標籤輸出一行內容。
為了讓web可以訪問這個頁面,我們首先需要一個路由地址,也就是開放一個資源地址給使用者, 讓使用者可以訪問我們提供的資料。
在檔案 routes/web.php 檔案內追加註冊如下路由地址:
Route::get('/', function () { return view('welcome');});
此處我們使用根目錄直接訪問,且路由的方法使用閉包函式返回。返回體呼叫系統助手函式 view 返回一個檢視檔案。 此處也就是指向了 resources/views/welcome.blade.php 檔案,這是系統的預設配置項,也就是約定項。
如果web伺服器配置成功,比如使用nignx,我們在網頁端就可以通過 localhost 直接訪問到該網頁了。
同樣地,如果是想要路由到某個 hello.blade.php 檢視檔案,那麼只需要在呼叫助手函式時,明確指定即可:
return view('hello');
如果我們的檢視檔案目錄地址在 resources/views/welcome/index.blade.php,那麼在助手函式中, 就需要這樣指定:
Route::get('/', function () { return view('welcome.index');});
至於問為什麼這樣寫?因為這是約定。使用點操作符,按照層級索引。
在路由註冊中,如果你的網頁是純靜態的,不需要經由控制器,處理資料,組裝資料進行渲染, 那麼可以直接在路由中呼叫檢視檔案進行返回。
Route::view('/', 'welcome');
建立控制器
為了讓網頁資料更加地動態化,達到寫一次頂上一百次的高效,我們使用控制器, 獲取使用者提交的資料,根據路由地址獲取引數,然後在控制器內處理引數,組裝資料。
首先建立一個控制器,使用artisan腳手架命令:
php artisan make:controller WelcomeController
這會建立檔案 app/Http/Controllers/WelcomeController.php 檔案,原始內容是框架自帶的, 開發者可以任意發揮:
namespace App\\Http\\Controllers;use Illuminate\\Http\\Request;class WelcomeController extends Controller{}
我們首先建立一個方法,呼叫檢視函式,把靜態檔案返回:
function index(){ return view('welcome.index');}
有了此方法之後,需要我們在路由檔案中呼叫此方法,就會完成從路由到檢視渲染的銜接:
Route::get('/', 'WelcomeController@index');
寫在最後
本文通過講解如何通過路由註冊,並返回一個靜態的檢視檔案,為大家演示了laravel應用中 一般的web頁面的建立方式。特別是引入控制器之後,動態資料會如約而至,下一章我們詳細介紹。
Happy coding :-)