日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747


PHP框架之Laravel基礎知識最全總結,還不快收藏

laravel框架基礎知識

一、laravel簡介

laravel是一套優雅簡介的php開發框架,受歡迎程度非常之高,功能強大,工具齊全;今天我們一起來看看框架的基礎知識

二、版本選擇

本篇學習筆記以laravel5.2.15版本為框架的版本基礎;更多版本請移步https://www.golaravel.com/

三、laravel下載安裝以及開發環境搭建

(一):環境搭建

由于laravel使用較多的php新特性,所以新版本的laravel對PHP的版本要求比較高,這里選擇的laravel5.2.15要求 PHP>5.5.9+ 。Win系統下推薦使用集成的開發環境比如wamp、phpStudy、Xampp都可以,下載安裝的時候需要注意PHP版本,linux系統下需要編譯安裝。

(二):下載、安裝及大致介紹

1、安裝包下載安裝

原本laravel中文網是可以下載一鍵安裝包的,但是等我去下載的時候發現沒地方可以下載,也只能通過度娘找其它下載資源下載安裝包然后安裝;我的資源:https://github.com/yuwenbo5/laravel5.2.15.git;下載安裝包后解壓更改名稱(laravel),直接拷貝到環境根目錄www(win下wamp環境)或者 /var/www/html(linux下lamp環境)中;打開瀏覽器輸入url:localhost/laravel/public 然后回車,出現如下畫面表示安裝成功:

PHP框架之Laravel基礎知識最全總結,還不快收藏

laravel5啟動頁面

2、composer安裝

cd到環境根目錄,使用命令:composer create-project --prefer-dist laravel/laravel=5.2.15 laravel(項目名稱,可修改)

3、簡單介紹

laravel是基于mvc模式的php框架,m——模型層,v——視圖層,c——控制器層;以下為laravel框架的目錄文件,框出來的文件目錄將在后續中用到:

  

PHP框架之Laravel基礎知識最全總結,還不快收藏

框架目錄

App是應用的核心代碼文件目錄,以后的代碼基本都在這里完成;app/Http/Controller目錄是應用的控制器文件;routes.php是框架的路由文件,負責路由分配和映射;Http下的類文件,比如上面目錄中的User.php、Menu.php文件是應用的模型文件;config目錄是所有應用的配置文件目錄;public是框架的入口文件及靜態資源文件目錄;resources/views則是應用的視圖文件目錄。

四、laravel路由

(一):簡介

用過thinkPHP的開發者都知道,傳統的MVC的url都是對應應用的控制器及控制器中的方法,laravel中的MVC則是通過路由功能映射到對應的程序(控制器方法),通過路由將用戶的請求發送到對應的程序進行處理,其作用就是建立url和處理程序之間的映射關系,這樣做有一個好處,對url進行美化只需要修改路由而無需對程序本身進行修改。

laravel中請求類型包括:get、post、put、patch、delete。

前面說了route.php是laravel的路由文件,所有的路由映射都要通過編輯route.php文件進行代碼書寫。

(二):路由學習

1、基本路由

get請求:

 1 <?php 2  3 //基本路由的get請求 4  5 Route::get('get_base', function(){ 6     return 'get request base'; 7 }); 8  9 10 瀏覽器輸入:http://127.0.0.1/laravel/public/get_base11 頁面輸出:get request base

post請求:

 1 <?php 2  3 //基本路由的post請求 4  5 Route::post('post_base', function(){ 6     return 'post request base'; 7 }); 8  9 10 以上路由需要通過post方式請求,這里不做演示11 請求后頁面輸出:post request base

2、多請求路由

顧名思義,多請求路由則是可以通過多種請求方式進行請求,多請求路由主要有兩種方式,match和any

(1)、match接收請求類型的數組從而限定請求的類型:

 1 <php 2  3 //多請求路由match 4  5 Route::match(['get','post'], 'multi', function(){ 6     return 'multi post or get'; 7 }); 8  9 url:http://127.0.0.1/laravel/public/multi10 此路由可通過get、post請求11 請求后返回字符串:multi post or get

(2)、any方式

 1 <?php 2  3 //any方式 4  5 Route::any('multi', function(){ 6    return 'multi get or post'; 7 }); 8  9 10 url:http://127.0.0.1/laravel/public/multi11 請求返回字符串:multi get or post

3、路由參數

給路由綁定參數,接收參數進行處理

(1)、必選參數

 1 <?php 2  3 //帶參數的路由 4  5 Route::get('myname/{name}', function($name){ 6     return 'my name is '.$name; 7 }); 8  9 10 url:http://127.0.0.1/laravel/public/myname/yuwenbo11 get訪問后頁面輸出:my name is yuwenbo

(2)、可選參數($userid=null表示默認值,可設置沒有參數時的默認值)

 1 <?php 2  3 //可選參數綁定 4  5 Route::get('user/{userid?}', function($userid=null){ 6     return 'userid is '.$userid; 7 }); 8  9 訪問url:http://127.0.0.1/laravel/public/user/username10 輸出:userid is username11 12 訪問url:http://127.0.0.1/laravel/public/user13 輸出:userid is14 15 可選參數綁定使得路由很靈活

(3)、路由參數過濾(用正則表達式對傳入的參數進行過濾)

 1 <?php 2  3 /* 4 參數過濾 5 */ 6  7 //單個參數過濾 8 Route::get('num/{num?}', function($num=15){ 9     return 'this num is '.$num;10 })->where('num','[0-9]+');11 12 訪問url:http://127.0.0.1/laravel/public/num/513 返回輸出:this num is 514 15 訪問url:http://127.0.0.1/laravel/public/num16 返回輸出:this num is 1517 18 訪問url:http://127.0.0.1/laravel/public/num/fhdja19 頁面報錯20 21 //多個參數過濾22 Route::get('info/{name}/{age?}', function($name,$age=null){23     return 'name is '.$name.', age is '.$age;24 })->where(['name' => '[a-zA-Z]+', 'age' => '[1-9]+']);25 26 可使用數組形式過濾多個參數

4、路由別名

給路由通過['as' => 'alias']數組使用別名后,可通過route('別名')生成url,請看代碼理解:

 1 <?php 2  3 //路由別名 4  5 Route::get('student/info',['as' => 'studentInfo' ,function(){ 6  7     //通過route('studentInfo')生成完成url后返回 8     return route('studentInfo'); 9 10 }]);11 12 13 訪問url:http://127.0.0.1/laravel/public/student/info14 頁面返回:http://127.0.0.1/laravel/public/student/info15 16 注:別名的好處在于,以后在控制器中使用route('別名')的方式生成url后,即便修改了路由的名字,也不用再修改控制器程序,因為通過別名程序能自動生成修改后的url

5、路由群組

通過關鍵字group創建路由群組

 1 <?php 2  3 /* 4 *路由群組 5 */ 6  7 Route::group(['prefix' => 'admin'], function(){ 8      9     //此時的訪問地址:http://127.0.0.1/laravel/public/admin/student/info10     Route::get('student/info',['as' => 'studentInfo' ,function(){11         return route('studentInfo');12     }]);13 14     //此時的訪問地址:http://127.0.0.1/laravel/public/admin/info/yuwenbo/2015     Route::get('info/{name}/{age?}', function($name,$age=null){16         return 'name is '.$name.', age is '.$age;17     })->where(['name' => '[a-zA-Z]+', 'age' => '[1-9]+']);18     19 });20 21 此時的訪問地址url必須要加上群組前綴,否則將不能訪問

6、路由中輸出視圖

通過view()函數輸入視圖

 1 <?php 2  3 /** 4 * 路由中輸出視圖 5 */ 6  7 //框架的歡迎界面路由 8  9 Route::get('/',function(){10    return view('welcome');11 });12 13 訪問url:http://127.0.0.1/laravel/public14 瀏覽器顯示laravel的歡迎界面15 16 17 //做如下修改18 Route::get('welcome',function(){19    return view('welcome');20 });21 22 修改后訪問url:http://127.0.0.1/laravel/public/welcome23 瀏覽器同樣顯示laravel的歡迎界面

一般情況是不會在路由中輸出視圖的。

五、控制器

控制器目錄app/Http/Controller,此目錄下有一個基本的控制器Controller,新增的控制器統一繼承此Controller;

命名空間:namespce AppHttpController;

命名規則:控制器文件名跟類名統一首字母大寫,以 控制器名+Controller 為命名規則,比如新建一個控制器 :AdminController.php

 1 <?php 2 /** 3  * Created by PhpStorm. 4  * User: Administrator 5  * Date: 2018/8/25/025 6  * Time: 0:51 7  */ 8  9 namespace AppHttpControllers;10 11 class AdminController extends Controller12 {13     public function index()14     {15         return view('admin/index');16     }17 }18 19 20 新建控制器AdminController繼承于基類Controller

1、路由關聯控制器,通過路由訪問控制器程序:

 1 <?php 2  3 //路由關聯映射控制器方法一: 4  5 Route::get('admin/index', 'AdminController@index'); 6  7  8 //路由關聯控制器方法二: 9 10 Route::get('admin/index', ['uses' => 'AdminController@index']);11 12 13 //路由別名關聯控制器:14 15 Route::get('admin/index', [16     'uses' => 'AdminController@index',17     'as' => 'adminindex'18 ]);

2、路由關聯控制器進行參數綁定:

 1 //路由書寫 route.php 2 <?php 3 //結合之前學習的參數過濾 4 Route::get('admin/index/{num}', [ 5     'uses' => 'AdminController@index', 6     'as' => 'adminindex' 7 ])->where('num', '[0-9]+'); 8  9 ?>10 11 12 13 //控制器代碼 AdminController.php14 <?php15 /**16  * Created by PhpStorm.17  * User: Administrator18  * Date: 2018/8/25/02519  * Time: 0:5120  */21 namespace AppHttpControllers;22 23 class AdminController extends Controller24 {25     public function index($num)26     {27         return 'num is '.$num;28     }29 }30 31 ?>32 33 訪問url:127.0.0.1/laravel/public/admin/index/534 頁面輸出:num is 5

六、模型

laravel框架的模型文件在app目錄下,統一首字母大寫,文件名與類名一致,統一繼承于 IlluminateDatabaseEloquentModel 基類;

(一)、新建模型及使用

 1 //模型文件 Admin.php 2 <?php 3 /** 4  * Created by PhpStorm. 5  * User: Administrator 6  * Date: 2018/8/25/025 7  * Time: 13:35 8  */ 9 namespace App;10 use IlluminateDatabaseEloquentModel;11 12 class Admin extends Model13 {14     public static function getAdmin()15     {16         return 'this is admin model static getAdmin action';17     }18 19 }20 21 ?>22 23 24 //控制器文件 AdminController.php25 <?php26 /**27  * Created by PhpStorm.28  * User: Administrator29  * Date: 2018/8/25/02530  * Time: 0:5131  */32 namespace AppHttpControllers;33 34 class AdminController extends Controller35 {36     public function index()37     {38         return Admin::getAdmin();39     }40 }

(二)、數據庫操作

連接數據庫MySQL,laravel的數據庫連接只需要配置好數據庫的配置文件即可,也就是config目錄下的database.php

 1 //database.php文件 2  3  4 'mysql' => [ 5             'driver' => 'mysql', 6             'host' => env('DB_HOST', 'localhost'), 7             'port' => env('DB_PORT', '3306'), 8             'database' => env('DB_DATABASE', 'forge'), 9             'username' => env('DB_USERNAME', 'forge'),10             'password' => env('DB_PASSWORD', ''),11             'charset' => 'utf8',12             'collation' => 'utf8_unicode_ci',13             'prefix' => 'shop_',14             'strict' => false,15             'engine' => null,16      ]17 18 //配置文件讀取的是.env文件的內容

打開.env文件,做如下配置修改即可連接到mysql數據庫

 1 APP_ENV=local 2 APP_DEBUG=true 3 APP_KEY=base64:IxkVvrRLqdJeU9h8vGu1W58OG3NVuDtkMWyC6nIT4qs= 4 APP_URL=http://localhost 5  6 //mysql連接配置 7 DB_CONNECTION=mysql 8 DB_HOST=localhost 9 DB_PORT=330810 DB_DATABASE=shop11 DB_USERNAME=root12 DB_PASSWORD=root13 14 CACHE_DRIVER=file15 SESSION_DRIVER=file16 QUEUE_DRIVER=sync17 18 redis_HOST=127.0.0.119 REDIS_PASSWORD=null20 REDIS_PORT=637921 22 MAIL_DRIVER=smtp23 MAIL_HOST=mailtrap.io24 MAIL_PORT=252525 MAIL_USERNAME=null26 MAIL_PASSWORD=null27 MAIL_ENCRYPTION=null

1、使用DB facade操作數據庫

類似原生的sql語句進行curd操作,例如:新建一個表user包含id、username、passwrod、email、sex、create_time、update_time字段

 1 <?php 2 /** 3  * 使用DB facade進行CURD操作 4  * Created by PhpStorm. 5  * User: Administrator 6  * Date: 2018/8/25/025 7  * Time: 0:51 8  */ 9 namespace AppHttpControllers;10 use AppHttpControllersController;11 use IlluminateHttpRequest;12 use IlluminateSupportFacadesDB;13 14 class AdminController extends Controller15 {16 17     public function query()18     {19         //查詢20         $user_list = DB::select('select * from user');//返回數組21 22 23         //新增24         $bool = DB::insert('insert into user(username,email,sex) values(?, ? ,?)',25 ['admin', 'example@mail.com', '1']);//返回布爾值26 27         //修改28          $rows = DB::update('update user set password=? where username=?',['123456', 'admin']);//返回影響的行數29 30         //刪除31         $rows = DB::delete('delete from user where username=?', ['admin']);//返回刪除的行數32 33     }34 }

使用DB facade操作數據庫,初學還是很簡單的,因為原生的sql還是比較熟的。

2、使用查詢構造器操作數據庫

使用查詢構造器進行數據庫操作使得操作簡介、方便,示例使用上面的user表進行演示

查詢構造器----新增數據
 1 <?php 2 /** 3  * 查詢構造器之新增數據 4  * Created by PhpStorm. 5  * User: Administrator 6  * Date: 2018/8/25/025 7  * Time: 0:51 8  */ 9 namespace AppHttpControllers;10 use AppHttpControllersController;11 use IlluminateHttpRequest;12 use IlluminateSupportFacadesDB;13 14 class AdminController extends Controller15 {16 17     public function query()18     {19         //插入一條數據20         $bool = DB::table('user')->insert(21             ['username' => 'yuwenbo', 'email' => 'example@mail.com', 'sex' => 1]22         );//返回布爾值23 24         //插入一條數據返回插入的id25         $insert_id = DB::table('user')->insertGetId(26             ['username' => 'yuwenbo', 'email' => 'example@mail.com', 'sex' => 1]27         );28 29 30         //插入多條數據31         $bool = DB::table('user')->insert([32             ['username' => 'yuwenbo', 'email' => 'example@mail.com', 'sex' => 1],33             ['username' => 'tom', 'email' => 'example@mail.com', 'sex' => 0]34         ]);35 36     }37 38 }
查詢構造器-----更新數據:更新指定內容和自增自減兩種方式
 1 <?php 2 /** 3  * 查詢構造器之更新數據 4  * Created by PhpStorm. 5  * User: Administrator 6  * Date: 2018/8/25/025 7  * Time: 0:51 8  */ 9 namespace AppHttpControllers;11 use AppHttpControllersController;12 use IlluminateHttpRequest;13 use IlluminateSupportFacadesDB;14 15 class AdminController extends Controller16 {17 18     public function query()19     {20         //更新指定內容21         $rows = DB::table('user')->where('username','admin')->update(['password' => '123456']);//返回影響的行數22 23         //更新自增自減24         $rows = DB::table('user')->where('username','admin')->increment('sex');//自增125         $rows = DB::table('user')->where('username','admin')->increment('sex',$n);//自增n26 27         $rows = DB::table('user')->where('username','admin')->decrement('sex');//自減128         $rows = DB::table('user')->where('username','admin')->decrement('sex',$n);//自減n29 30         //自增同時修改其它內容31         $rows = DB::table('user')->where('username','admin')->increment('sex', 3, ['email' => '4546464684@mail.com']);//自增同時修改內容32 33     }34 35 }
查詢構造器----刪除數據
 1 <?php 2 /** 3  * 查詢構造器之刪除數據 4  * Created by PhpStorm. 5  * User: Administrator 6  * Date: 2018/8/25/025 7  * Time: 0:51 8  */ 9 namespace AppHttpControllers;10 use AppHttpControllersController;11 use IlluminateHttpRequest;12 use IlluminateSupportFacadesDB;13 14 class AdminController extends Controller15 {16 17     public function query()18     {19         //刪除數據20         $rows = DB::table('user')->where('username','admin')->delete();21 22         //清空數據(危險,謹慎使用)23         DB::table('user')->truncate();24 25     }26 27 }
查詢構造器-----查詢數據
 1 <?php 2 /** 3  * 查詢構造器之查詢數據 4  * Created by PhpStorm. 5  * User: Administrator 6  * Date: 2018/8/25/025 7  * Time: 0:51 8  */ 9 namespace AppHttpControllers;10 use AppHttpControllersController;11 use IlluminateHttpRequest;12 use IlluminateSupportFacadesDB;13 14 class AdminController extends Controller15 {16 17     public function query()18     {19         //返回所有的數據get()20         $user_list = DB::table('user')->get();21         $user_list = DB::table('user')->where('id','>=',2)->get();22 23         //多條件查詢24         $user_list = DB::table('user')->whereRaw('id >= ? and sex = ?', ['5' ,'1'])->get();25 26         //按照默認排序返回第一條數據first()27         $user = DB::table('user')->first();28         $user = DB::table('user')->orderBy('id','desc')->first();29         $user = DB::table('user')->where('id', 2)->first();30 31         //返回結果集中指定的字段pluck32         $usernames = DB::table('user')->whereRaw('id >= ? and sex = ?', ['5' ,'1'])->pluck('username');33 34         //返回指定字段的下標lists35         $usernames = DB::table('user')->whereRaw('id >= ? and sex = ?', ['5' ,'1'])->lists('username', 'id');//以id作為下標36 37         //返回指定的多個字段select()38         $user_list = DB::table('user')->where('id', '>=', '1')->select('username','email','sex')->get();39 40         //每次查指定的條數chunk41         DB::table('user')->chunk(2, function($user_list){42             dd($user_list);43         });44 45     }46 47 }

mysql中的聚合函數對應的構造器方法count()、max()、min()、avg()、sum(),使用都比較簡單也很好理解,這里不再贅述

七、視圖

laravel框架的視圖支持原生的php文件,視圖的目錄 resources/views;

命名:統一以.php為后綴的PHP文件,規則:視圖名+.+blade,例如新建一個視圖文件:index.blade.php

一般情況下一個控制器會建一個視圖目錄,例如AdminController控制器,我們將在views下新建一個admin目錄

(一)、新建視圖

1 //模板文件 views/admin/index.blade.php2 3 this is views/admin/index.blade

(二)、輸出視圖

 1 //路由文件 2 <?php 3     //綁定控制器方法 4     Route::get('admin/index', 'AdminController@index'); 5  6 ?> 7  8  9 //控制器文件 AdminController.php10 <?php11 /**12  * Created by PhpStorm.13  * User: Administrator14  * Date: 2018/8/25/02515  * Time: 0:5116  */17 namespace AppHttpControllers;18 19 class AdminController extends Controller20 {21     public function index()22     {23         return view('adminindex');//傳入要輸出的模板名即可24     }25 }26 27 訪問url:http://127.0.0.1/laravel/public/admin/index28 頁面顯示:this is views/admin/index.blade

輸出視圖時可以攜帶變量然后在模板中輸出出來,這點將在后面的模板的詳細使用中用到;

(三)、模板詳解

1、模板繼承

由于多數頁面有相同部分,所以使用模板繼承簡化模板使用;以下首先在views/common下新建一個基本的公共模板文件base.blade.php,公共的模板文件放在views/common文件夾下

base.blade.php

 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"/> 5 <title>后臺管理-@yield('title')</title> 6 <meta name="author" content="DeathGhost" /> 7 <link rel="stylesheet" type="text/css" href="{{ asset('admin/static/css/style.css') }}"> 8 @section('style') 9     //樣式代碼區10 @show11 <!--[if lt IE 9]>12 <script src="{{ asset('admin/static/js/html5.js') }}"></script>13 <![endif]-->14 <script src="{{  asset('admin/static/js/jquery.js') }}"></script>15 <script src="{{ asset('admin/static/js/jquery.mCustomScrollbar.concat.min.js') }}"></script>16 </head>17 <body>18 <!--header-->19 @section('header')20   <header>21   //頭部22   </header>23 @show24 <!--aside nav-->25 <!--aside nav-->26 @section('leftmenu')27 <aside class="lt_aside_nav content mCustomScrollbar">28      //左邊菜單29 </aside>30 @show31 32 <section class="rt_wrap content mCustomScrollbar">33 34   @yield('content')  //主內容區域35 36 </section>37 @section('footer')38     //頁面底部39 @show40 @section('JAVAscript')41     //JavaScript代碼區42 @show43 </body>44 </html>

在views下新建首頁index.blade.php繼承公共模板文件

index.blade.php

 1 @extends('common.base') 2  3 @section('title') 4   首頁 5 @stop 6  7 @section('style') 8  <style> 9   .dataStatistic{width:400px;height:200px;border:1px solid #ccc;margin:0 auto;margin:10px;overflow:hidden}10   #cylindrical{width:400px;height:200px;margin-top:-15px}11   #line{width:400px;height:200px;margin-top:-15px}12   #pie{width:400px;height:200px;margin-top:-15px}13  </style>14 @stop15 16 @section('leftmenu')17 <aside class="lt_aside_nav content mCustomScrollbar">18  <h2><a href="{{ url('admin/index') }}">系統首頁</a></h2>19  <ul>20   <li>21    <dl>22     <dt>商品管理</dt>23     <!--當前鏈接則添加class:active-->24     <dd><a href="{{ url('admin/product/list') }}" class="{{ Request::getPathInfo() == '/admin/product/list' ? 'active' : '' }}">商品列表</a></dd>25     <dd><a href="{{ url('admin/product/detail') }}" class="{{ Request::getPathInfo() == '/admin/product/detail' ? 'active' : '' }}">商品詳情</a></dd>26     <dd><a href="{{ url('admin/product/recycle') }}" class="{{ Request::getPathInfo() == '/admin/product/recycle' ? 'active' : '' }}">商品回收站</a></dd>27    </dl>28   </li>29   <li>30    <dl>31     <dt>訂單信息</dt>32     <dd><a href="order_list.html">訂單列表</a></dd>33     <dd><a href="order_detail.html">訂單詳情</a></dd>34    </dl>35   </li>36  </ul>37 </aside>38 @stop39 40 @section('content')41  <div class="rt_content">42   <!--開始:以下內容則可刪除,僅為素材引用參考-->43   <h1 style="color:red;font-size:20px;font-weight:bold;text-align:center;">相關版塊涉及樣式示例文檔(文檔說明)</h1>44   <p style="color:red;font-size:16px;font-weight:bold;text-align:center;margin:8px 0;background:#FFC;padding:8px;">這里是相關常用性樣式預設,具體根據內容版塊調整,列表添加字段注意考慮筆記本屏幕顯示;<br/>此頁面僅為樣式參考,程序對接可移除,具體布局根據項目內容而定<br/>注意保留rt_content.parent<br/>常用<b style="color:#090; text-decoration:underline">“統計圖”</b><b style="color:#090; text-decoration:underline">“Tab切換”</b><b style="color:#090; text-decoration:underline">“加載進度”</b><b style="color:#090; text-decoration:underline">“彈窗效果”</b><b style="color:#090; text-decoration:underline">“基礎按鈕及表格布局”</b><b style="color:#090; text-decoration:underline">“HTML5canvas特效”</b>等等,具體根據實際需求添加修改追加!</p>45  </div>46 @stop

模板繼承語法:@extends('目錄.文件名');例如:@extends('common.base'),就可以繼承common目錄下的base.blade.php模板

使用@section重寫子模板,使用@yield展示某個指定的section的內容;

@yield不能被子模板擴展,@section可以被子模板擴展

如果需要展示父模板內容,可使用@parent;例如:

1 @extends('common.base')2 3 @section('header')4     @parent5     header6 @stop

2、基礎語法及使用

輸出變量,使用{{ $變量名 }},如下所示:

 1 //例如控制器中 2  3 public function index(){ 4         5         return view('index',['name' => 'yuwenbo']); 6  7 } 8  9 11 12 //模板中輸出index.blade.php13 14 15 <p>{{ $name }}</p>16 17 18 結果輸出:yuwenbo

使用php函數,blade模板允許我們使用原生的php,也可以在模板中使用函數及運算符

 1 //模板中使用php函數 2  3  4 //輸出時間戳 5 <p>{{ time() }}</p> 6  7 //格式化當前時間 8 <p>{{ date('Y-m-d H:i:s', time()) }}</p> 9 10 //三元運算符11 <p>{{ in_array($name,$array) ? 'true' : false }}</p>

模板中短語法:{{ isset($age) ? $age : 'default value' }} 等同于 {{ $age or 'default value' }}

原樣輸出:

使用@{{ $count }}即可原樣輸出 ‘{{ $count }}’。

子視圖引入

使用@include關鍵字;例如在views下新建模板leftmenu.blade.php

 1 @extends('common.base') 2  3 @section('header') 4     @parent 5     header 6 @stop 7  8 @section('leftmenu) 9     //引入子視圖10     @include('leftmenu')11 @stop

3、流程控制

if判斷語句

1 //if流程判斷語句2 3 @if($user == 'admin')4    i am admin5 @elseif($user == 'yuwenbo')6    i am yuwenbo7 @else8    i am default9 @endif

for循環語句

1 //for循環語句2 3 @for($i = 1; $i <= 10; $i ++)4     <p>i is {{ $i }}</p>5 @endfor

foreach循環語句

 1 //控制器 2 public function index() 3 { 4      $data_list = array('name' => 'yuwenbo', 'age' => 22, 'job' => 'php'); 5  6      return views('index', ['data' => $data_list]); 7 } 8  9 10 //視圖輸出11 @foreach($data as $key => $val)12     {{ $key }} => {{ $val }}13 @endforeach
 1 //控制器 2 public function index() 3 { 4      $data_list = array( 5          array('name' => 'admin', 'age' => 20), 6          array('name' => 'word', 'age' => 18) 7      ); 8  9      return views('index', ['data' => $data_list]);10 }11 12 13 //模板輸出14 @foreach($data as $key => $val)15     <p>name is {{ $val->name }}, age is {{ $val->age }}</p>16 @endforeach

4、模板中使用url

url()-->通過路由的名字生成url

action()-->通過指定控制器及方法名生成url

route()-->通過路由別名生成url

 1 //路由 route.php 2  3 Route('index',[ 4     'uses' => 'IndexController@index',  5     'as' => 'in' 6 ]); 7  8  9 10 //模板中生成url的方式11 12 <a href="{{ url('index') }}">url方式</a>13 14 <a href="{{ action('IndexController@index') }}">action方式</a>15 16 <a href="{{ route('in') }}">route方式</a>17 18 19 //以上三種方式均生成url:20 http://127.0.0.1/laravel/public/index

以上三種方式在實際使用時都可以用,一般情況下,使用url()和route()較多,因為寫法簡介方便。

 

PHP框架之Laravel基礎知識最全總結,還不快收藏

laravel

好了,今天的分享就到這里,一個基礎的總結,希望對你有用,如果喜歡我的內容,歡迎收藏~~留言~~

謝謝~~

分享到:
標簽:框架 PHP
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定