跟我學(xué)Laravel之快速入門(mén)
安裝
Laravel框架使用 Composer 執(zhí)行安裝和依賴管理。如果還沒(méi)有安裝的話,現(xiàn)在就開(kāi)始 安裝 Composer 吧。
安裝Composer之后,你就可以通過(guò)命令行使用如下命令安裝Laravel了:
composer create-project laravel/laravel your-project-name
或者,你可以從 Github倉(cāng)庫(kù) 下載。接下來(lái),在 安裝Composer 之后,在項(xiàng)目根目錄下執(zhí)行 composer install 命令。該命令將會(huì)下載以及安裝框架的依賴組件。
寫(xiě)入權(quán)限
安裝完 Laravel ,你還需要為web服務(wù)器設(shè)置 app/storage 目錄的寫(xiě)入權(quán)限。請(qǐng)參考 安裝 一節(jié)以獲取更多關(guān)于配置方面的信息。
目錄結(jié)構(gòu)
安裝完框架后,你需要熟悉一下該項(xiàng)目的目錄結(jié)構(gòu)。app 文件夾包含了一些例如 views ,controllers 和 models 目錄。 程序中大部分代碼將要存放這些目錄下。你也可以查看一下 app/config 文件夾里一些配置項(xiàng)目。
路由
我們開(kāi)始創(chuàng)建我們第一個(gè)路由。在 Laravel,簡(jiǎn)單路由的方法是閉包。打開(kāi) app/routes.php 文件加入如下代碼:
Route::get('users', function()
{
return 'Users!';
});
現(xiàn)在,你在 web 瀏覽器輸入 /users,你應(yīng)該會(huì)看到 Users! 輸出。真棒!已經(jīng)創(chuàng)建了你第一個(gè)路由。
路由也可以賦予控制器類(lèi)。例如:
Route::get('users', 'UserController@getIndex');
該路由告知框架 /users 路由請(qǐng)求應(yīng)該調(diào)用 UserController 類(lèi)的 getIndex 方法。要查看更多關(guān)于路由控制器信息,查看 控制器文檔 。
創(chuàng)建視圖
接下來(lái),我們要?jiǎng)?chuàng)建視圖來(lái)顯示我們用戶數(shù)據(jù)。視圖以HTML代碼存放在 app/views 文件夾。我們將存放兩個(gè)視圖文件到該文件夾:layout.blade.php 和 users.blade.php。首先,讓我們先創(chuàng)建 layout.blade.php 文件:
<html>
<body>
<h1>Laravel Quickstart</h1>
@yield('content')
</body>
</html>
接著, 我們創(chuàng)建 users.blade.php 視圖:
@extends('layout')
@section('content')
Users!
@stop
這里的語(yǔ)法可能讓你感到陌生。因?yàn)槲覀兪褂玫氖?Laravel 模板系統(tǒng):Blade。Blade 非常快,因?yàn)閮H使用了少量的正則表達(dá)式來(lái)為你的模板編譯成原始PHP代碼。Blade提供強(qiáng)大的功能,例如模板繼承,還有一些常用的PHP控制結(jié)構(gòu)語(yǔ)法糖,例如 if 和 for。 查看 Blade 文檔 了解更多。
現(xiàn)在我們有了我們視圖,讓我們返回 /users 路由。我們用視圖來(lái)替代返回 Users!:
Route::get('users', function()
{
return View::make('users');
});
漂亮!現(xiàn)在你成功創(chuàng)建了繼承至layout的視圖。接下來(lái),讓我們開(kāi)始數(shù)據(jù)庫(kù)層。
創(chuàng)建遷移
要?jiǎng)?chuàng)建表來(lái)保存我們數(shù)據(jù),我們將使用 Laravel 遷移系統(tǒng)。遷移描述數(shù)據(jù)庫(kù)的改變,這讓分享給他們團(tuán)隊(duì)成員非常簡(jiǎn)單。
首先,我們配置數(shù)據(jù)庫(kù)連接。你可以在 app/config/database.php 文件配置所有數(shù)據(jù)庫(kù)連接信息。默認(rèn),Laravel 被配置為使用 SQLite,并且一個(gè) SQLite 數(shù)據(jù)庫(kù)存放在 app/database 目錄。你可以將數(shù)據(jù)庫(kù)配置文件的 driver 選項(xiàng)修改為 mysql 并且配置 mysql 連接信息。
接下來(lái),要?jiǎng)?chuàng)建遷移,我們將使用 Artisan CLI。在項(xiàng)目根目錄中,在終端中執(zhí)行以下命令:
php artisan migrate:make create_users_table
然后,找到生成的遷移文件 app/database/migrations 目錄。該文件包含了一個(gè)包含兩個(gè)方法: up 和 down 的類(lèi)。在 up 方法,你要指名數(shù)據(jù)庫(kù)表的修改,在 down 方法中你只需要移除它。
讓我們定義如下遷移:
public function up()
{
Schema::create('users', function($table)
{
$table->increments('id');
$table->string('email')->unique();
$table->string('name');
$table->timestamps();
});
}
public function down()
{
Schema::drop('users');
}
然后,我們?cè)陧?xiàng)目根目錄中使用終端運(yùn)行 migrate 命令來(lái)執(zhí)行遷移:
php artisan migrate
如果你想回滾遷移,你可以執(zhí)行 migrate:rollback 命令?,F(xiàn)在我們已經(jīng)有了數(shù)據(jù)庫(kù)表,讓我們讓添加一些數(shù)據(jù)!
Eloquent ORM
Laravel 提供非常棒的 ORM:Eloquent。如果你使用過(guò) Ruby on Rails 框架,你會(huì)發(fā)現(xiàn) Eloquent 很相似,因?yàn)樗裱瓟?shù)據(jù)庫(kù)交互的 ActiveRecord ORM 風(fēng)格。
首先,讓我們來(lái)定義個(gè)模型。ELoquent 模型可以用來(lái)查詢相關(guān)數(shù)據(jù)表,以及表內(nèi)的某一行。別著急,我們很快會(huì)談及!模型通常存放在 app/models 目錄。讓我們?cè)谠撃夸浂x個(gè) User.php 模型,如:
class User extends Eloquent {}
注意我們并沒(méi)有告訴 Eloquent 使用哪個(gè)表。Eloquent 有多種約定, 一個(gè)是使用模型的復(fù)數(shù)形式作為模型的數(shù)據(jù)庫(kù)表。非常方便!
使用你喜歡的數(shù)據(jù)庫(kù)管理工具,插入幾行數(shù)據(jù)到 users 表,我們將使用 Eloquent 取得它們并傳遞到視圖中。
現(xiàn)在我們修改我們 /users 路由如下:
Route::get('users', function()
{
$users = User::all();
return View::make('users')->with('users', $users);
});
讓我們來(lái)看看該路由。首先,User 模型的 all 方法將會(huì)從 users 表中取得所有記錄。接下來(lái),我們通過(guò) with 方法將這些記錄傳遞到視圖。with 方法接受一個(gè)鍵和一個(gè)值,那么該值就可以在視圖中使用了。
激動(dòng)啊?,F(xiàn)在我們準(zhǔn)備將用戶顯示在我們視圖!
顯示數(shù)據(jù)
現(xiàn)在我們視圖中已經(jīng)可以訪問(wèn) users 類(lèi),我們可以如下顯示它們:
@extends('layout')
@section('content')
@foreach($users as $user)
<p>{{ $user->name }}</p>
@endforeach
@stop
你可以發(fā)現(xiàn)沒(méi)有找到 echo 語(yǔ)句。當(dāng)使用 Blade 時(shí),你可以使用兩個(gè)花括號(hào)來(lái)輸出數(shù)據(jù)。非常簡(jiǎn)單,你現(xiàn)在應(yīng)該可以通過(guò) /users 路由來(lái)查看到用戶姓名作為響應(yīng)輸出。
這僅僅是開(kāi)始。在本系列教程中,你已經(jīng)了解了 Laravel 基礎(chǔ)部分,但是還有更讓人興奮的東西要學(xué)。繼續(xù)閱讀該文檔并且深入Eloquent和Blade這些強(qiáng)大的特性?;蛘吣銓?duì)隊(duì)列 和 單元測(cè)試 感興趣。或許是你想了解IoC Container, 選擇權(quán)在于你!
相關(guān)文章
Yii實(shí)現(xiàn)顯示靜態(tài)頁(yè)的方法
這篇文章主要介紹了Yii實(shí)現(xiàn)顯示靜態(tài)頁(yè)的方法,結(jié)合實(shí)例形式分析了Yii框架顯示靜態(tài)頁(yè)的步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-04-04
php設(shè)計(jì)模式之觀察者模式定義與用法經(jīng)典示例
這篇文章主要介紹了php設(shè)計(jì)模式之觀察者模式定義與用法,結(jié)合完整實(shí)例形式詳細(xì)分析了php觀察者模式概念、原理、定義與使用方法,代碼注釋包含詳盡的說(shuō)明,需要的朋友可以參考下2019-09-09
ThinkPHP框架實(shí)現(xiàn)定時(shí)執(zhí)行任務(wù)的兩種方法分析
這篇文章主要介紹了ThinkPHP框架實(shí)現(xiàn)定時(shí)執(zhí)行任務(wù)的兩種方法,結(jié)合實(shí)例形式分析了2種被動(dòng)執(zhí)行定時(shí)任務(wù)的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2018-09-09
Yii2框架制作RESTful風(fēng)格的API快速入門(mén)教程
Yii提供了一整套用來(lái)簡(jiǎn)化實(shí)現(xiàn)RESTful風(fēng)格的WebService服務(wù)的API。這篇文章主要介紹了Yii2框架制作RESTful風(fēng)格的API快速入門(mén)教程的相關(guān)資料,需要的朋友可以參考下2016-11-11
解決laravel 表單提交-POST 異常的問(wèn)題
今天小編就為大家分享一篇解決laravel 表單提交-POST 異常的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
PHP利用正則表達(dá)式實(shí)現(xiàn)手機(jī)號(hào)碼中間4位用星號(hào)(*)替換顯示功能
為了我們的隱私,所以我們把手機(jī)號(hào)碼部分?jǐn)?shù)字隱藏掉,今天小編給大家?guī)?lái)了PHP利用正則表達(dá)式實(shí)現(xiàn)手機(jī)號(hào)碼中間4位用星號(hào)(*)替換顯示,需要的朋友參考下吧2017-10-10

