引言
使用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 😃
我是@程序員小助手,持續分享編程知識,歡迎關注。