laravel框架根本知识
一、laravel简介laravel是一套优雅简介的PHP开拓框架,受欢迎程度非常之高,功能强大,工具完好;本日我们一起来看看框架的根本知识
本篇学习条记以laravel5.2.15版本为框架的版本根本;更多版本请移步https://www.golaravel.com/

由于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 然后回车,涌现如下画面表示安装成功:
laravel5启动页面
2、composer安装cd到环境根目录,利用命令:composer create-project --prefer-dist laravel/laravel=5.2.15 laravel(项目名称,可修正)
3、大略先容laravel是基于mvc模式的php框架,m——模型层,v——视图层,c——掌握器层;以下为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 App\Http\Controller;
命名规则:掌握器文件名跟类名统一首字母大写,以 掌握器名+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 App\Http\Controllers;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 App\Http\Controllers;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目录下,统一首字母大写,文件名与类名同等,统一继续于 Illuminate\Database\Eloquent\Model 基类;
(一)、新建模型及利用 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 Illuminate\Database\Eloquent\Model;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 App\Http\Controllers;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 App\Http\Controllers;10 use App\Http\Controllers\Controller;11 use Illuminate\Http\Request;12 use Illuminate\Support\Facades\DB;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 App\Http\Controllers;10 use App\Http\Controllers\Controller;11 use Illuminate\Http\Request;12 use Illuminate\Support\Facades\DB;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 App\Http\Controllers;11 use App\Http\Controllers\Controller;12 use Illuminate\Http\Request;13 use Illuminate\Support\Facades\DB;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 App\Http\Controllers;10 use App\Http\Controllers\Controller;11 use Illuminate\Http\Request;12 use Illuminate\Support\Facades\DB;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 App\Http\Controllers;10 use App\Http\Controllers\Controller;11 use Illuminate\Http\Request;12 use Illuminate\Support\Facades\DB;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 App\Http\Controllers;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()较多,由于写法简介方便。
laravel
好了,本日的分享就到这里,一个根本的总结,希望对你有用,如果喜好我的内容,欢迎收藏~~留言~~
感激~~