




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章Laravel框架构建动态网站01Laravel框架配置和安装02Laravel框架基础知识03Laravel框架特点1Laravel框架配置和安装Laravel简介传参格式Laravel是一套优雅简介的PHP开发框架,受欢迎程度非常之高,功能强大,工具齐全。本章学习以laravel5.2.15版本为框架的版本基础;由于laravel使用较多的php新特性,所以新版本的laravel对PHP的版本要求比较高,这里选择的laravel5.2.15要求PHP>5.5.9+。
Win系统下推荐使用集成的开发环境比如wamp、phpStudy、Xampp都可以,下载安装的时候需要注意PHP版本,Linux系统下需要编译安装,我们这里选择XAMPP./yuwenbo5/laravel5.2.15.git;下载安装包后解压更改名称(laravel),直接拷贝到环境根目录d:/xampp/hodocs中;打开浏览器输入url:localhost/然后回车,出现如下画面表示安装成功:安装包下载安装Composer是PHP中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件。cd到环境根目录,使用命令:composercreate-project--prefer-distlaravel/laravel=5.2.15laravelcomposercreate-projectlaravel/laravel项目名称--prefer-distcomposer安装2Laravel框架基础知识主要内容
MVC模式
Laravel路由0102
视图03模板Blade04
laravel是基于mvc模式的php框架,M——模型层,V——视图层,C——控制器层;以下为laravel框架的目录文件,框出来的文件目录将在后续中用到。app是应用的核心代码文件目录,以后的代码基本都在这里完成;app/Http/Controller目录是应用的控制器文件;routes.php是框架的路由文件,负责路由分配和映射;Http下的类文件,比如上面目录中的User.php、Menu.php文件是应用的模型文件;config目录是所有应用的配置文件目录;public是框架的入口文件及静态资源文件目录;resources/views则是应用的视图文件目录。MVC模式MVC模式Laravel路由传统的MVC的URL都是对应应用的控制器及控制器中的方法,laravel中的MVC则是通过路由功能映射到对应的程序(控制器方法),通过路由将用户的请求发送到对应的程序进行处理,其作用就是建立url和处理程序之间的映射关系,这样做有一个好处,对url进行美化只需要修改路由而无需对程序本身进行修改。
laravel中请求类型包括:get、post、put、patch、delete。前面说了route.php是laravel的路由文件,所有的路由映射都要通过编辑route.php文件进行代码书写。Laravel路由直接显示输出:Route::get('as',['as'=>'ass',function(){echo
route('ass');}]);或:Route::get('as',function(){echo
route('ass');})->name('ass');控制器路由:Route::get('index','IndexController@index')->name('index');
通过辅助函数route为该命名路由生成URL,可以有第二个参数。路由群组:共享属性以数组的形式参数传递给Route::group方法。路由前缀:['prefix'
=>'admin']
//匹配"/admin"URL命名空间:['namespace'
=>'Admin']//控制器在"App\Http\Controllers\Admin"命名空间下中间件:['middleware'
=>'auth']//使用Auth中间件子域名路由:['domain'
=>'{account}.[](/)']Route::group(['namespace'
=>'Admin'],function(){
});视图视图传值:给视图传一个值:return
view('greeting',['name'
=>'James']);或:return
view('greeting')->with('name','James');给admin下的profile传一个$data数组值:return
view('file',$data);返回上一个视图:return
back();跳转页面:return
redirect('跳转的页面');模板Blade输出变量:{{$name}}输出js代码:{!!$name!!}不解析这个:@{{name}}给一个默认值:{{$nameor
"这是默认值"
}}三元运算符:{{isset($name)?$name:"假就用这个"
}}if:
@if
($str>60)真显示:@else假显示:@endifunless:除非/如果不/
除…之外@unless($str>60):除了$str>60的,其他的都显示@endunless模板Blade循环for:
@for($i=0;$i<10;$i++){{$i}}@endforforeach:
@foreach
($usersas
$user){{$user->id}}@endforeachforelse:是foreach
的补充,有就显示,没有就走下面的@forelse($usersas
$user)有就显示@empty没有就走下面的@endforelse模板Blade引入模版:@include('路径.模版名');include(‘conn.blade.php’)引人内容,要替换的部分:@yield('title')@yield('content')@section('sidebar')Thisisthemastersidebar.@show模板Blade替换内容:
@extends('layouts.app'):先引入要替换的页面,像父类一样@section('title','PageTitle')@section('sidebar')@parent
:这个显示sidebar中默认的内容Thisisappendedtothemastersidebar.@endsection@section('content')Thisismybodycontent.@endsection模板Blade替换内容:
@extends('layouts.app'):先引入要替换的页面,像父类一样@section('title','PageTitle')@section('sidebar')@parent
:这个显示sidebar中默认的内容Thisisappendedtothemastersidebar.@endsection@section('content')Thisismybodycontent.@endsection
Model操作创建model:phpartisanmake:model文件名/userModelmodel的约定:在laravel中约定(非强制),表名叫xxs,复数形式.类和表名有关系,一般表名去掉s,即为Model的类名.表名的约定默认表名为Model名+s,可能通过的model类的table属性来指定表名.id的约定:Model默认认为,每张表都有一个叫做id的主键,你可以通过primaryKey属性来指定主键列名.
不想要created_at,updated_at字段,可以把model的timestamps属性设为false。
Model操作继承自:Illuminate\Database\Eloquent\Model实例化Model:$model=new
App\Xxx();//得到Xx表的Model,且不与表中任何行对应$model=Xxx::find($id);//得到Xx表的Model,且与$id行数据对应classXxModelextendsModel{Protected
$table='yourTableName';//指定表名Protected
$primaryKey='Xx_id';//设置主键public
$timestamps=false;//去掉created_at,updated_at字段}
Model操作增:public
functionadd(){$msg=new
Msg();//实例化对象$msg->title=$_POST['title'];$msg->content=$_POST[‘content'];return
$msg->save()?'OK'
:'fail';}
Model操作删:public
functiondel($id){$msg=Msg::find($id);return
$msg->delete()?'ok'
:'fail';}
Model操作查:查单行:find()与first()Msg::find($id)//按id查Msg::where('id','>',3)->first();//按where条件查查多行:all()和get()Msg::all(['列1','列2']);//无条件查所有行.select列1,列2frommsgs;Msg::where('id','>',2)->get(['列1','列2']);//按条件查多行
Model操作改:public
functionupdate($id){if(empty($_POST)){$msg=Msg::find($id);//修改记录的idreturn
view('msg.up',['msg'=>$msg]);}else
{$msg=Msg::find($id);$msg->title=$_POST['title'];$msg->content=$_POST['content'];return
$msg->save()?'OK'
:'fail';}}
Model操作复杂查询://select*whereid>2orderbyiddesclimit2,1;Msg::where('id','>',2)->orderBy('id','desc')->skip(2)->take(1)->get();统计Msg::count();//总数Msg::avg('id');//平均值Msg::min('id');//最小Msg::max('id');//最大Msg::sum('id');//合计分组
//用DB::raw()方法,raw是"裸,不修饰的"意思Goods::groupBy('cat_id')->get(['cat_id',DB::raw('avg(price)')]));
Model操作数据库:引入:use
Illuminate\Support\Facades\DB;测试是否连接成功:$pdo=DB::connection()->getPdo();
dd($pdo);运行Select查询:DB::select('select*fromuserswhereactive=?',[1]);运行插入语句:DB::insert('insertintousers(id,name)values(?,?)',[1,'Dayle']);运行更新语句:DB::update('updateuserssetvotes=100wherename=?',['John']);运行删除语句:DB::delete('deletefromuserswhereid=?',[1]);运行一个通用语句:DB::statement('droptableusersname');3
Laravel框架特点
Laravel框架特点1.语法更富有表现力2.高质量的文档CodeIgniter非常流行原因之一是它有良好的文档。这对程序员来说是十分方便的。相比之下,Kohana一个在技术上比CI更加优秀的框架,但你猜怎么着?大家不在乎Kohana技术有多强,因为Kohana的文档实在是太糟了。而Laravel有一个非常棒的的社区支持。Laravel代码本身的表现力和良好的文档使PHP程序编写令人愉快。3.丰富的扩展包Bundle是Laravel中对扩展包的称呼。它可以是任何东西--大到完整的ORM,小到除错(debug)工具,仅仅复制&粘贴就能安装任何扩展包!Laravel的扩展包由世界各地的开发者贡献,而且还在不断增加中。4.开源、托管在GITHUB上Laravel是完全开源的。所有代码都可以从Github上获取,并且欢迎你贡献出自己的力量。
Laravel框架特点4.开源、托管在GITHUB上Laravel是完全开源的。所有代码都可以从Github上获取,并且欢迎你贡献出自己的力量。1)Bundle是Laravel的扩展包组织形式或称呼。Laravel的扩展包仓库已经相当成熟了,可以很容易的帮你把扩展包(bundle)安装到你的应用中。你可以选择下载一个扩展包(bundle)然后拷贝到bundles目录,或者通过命令行工具“Artisan”自动安装。2)在Laravel中已经具有了一套高级的PHPActiveRecord实现--EloquentORM。它能方便的将“约束(constraints)”应用到关系的双方,这样你就具有了对数据的完全控制,而且享受到ActiveRecord的所有便利。Eloquent原生支持Fluent中查询构造器(query-builder)的所有方法。3)应用逻辑(ApplicationLogic)可以在控制器(controllers)中实现,也可以直接集成到路由(route)声明中,并且语法和Sinatra框架类似。Laravel的设计理念是:给开发者以最大的灵活性,既能创建非常小的网站也能构建大型的企业应用。
Laravel框架特点4)反向路由(ReverseRouting)赋予你通过路由(routes)名称创建链接(URI)的能力。只需使用路由名称(routename),Laravel就会自动帮你创建正确的URI。这样你就可以随时改变你的路由(routes),Laravel会帮你自动更新所有相关的链接。5)Restful控制器(RestfulControllers)是一项区分GET和POST请求逻辑的可选方式。比如在一个用户登陆逻辑中,你声明了一个get_login()的动作(action)来处理获取登陆页面的服务;同时也声明了一个post_login()动作(action)来校验表单POST过来的数据,并且在验证之后,做出重新转向(redirect)到登陆页面还是转向控制台的决定。6)自动加载类(ClassAuto-loading)简化了类(class)的加载工作,以后就可以不用去维护自动加载配置表和非必须的组件加载工作了。当你想加载任何库(library)或模型(model)时,立即使用就行了,Laravel会自动帮你加载需要的文件。
Laravel框架特点7)视图组装器(ViewComposers)本质上就是一段代码,这段代码在视图(View)加载时会自动执行。最好的例子就是博客中的侧边随机文章推荐,“视图组装器”中包含了加载随机文章推荐的逻辑,这样,你只需要加载内容区域的视图(view)就行了,其它的事情Laravel会帮你自动完成。8)反向控制容器(IoCcontainer)提供了生成新对象、随时实例化对象、访问单例(singleton)对象的便捷方式。反向控制(IoC)意味着你几
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 马匹出售合同范本
- 2025年中国加工中心行业市场调查研究及投资前景预测报告
- 超市管理系统配置安装测试报告
- 90后张桂芳:用青春画笔绘就彩虹乡村梦
- “书童”伴学欢乐多
- “十三五”重点项目-柠檬酸三乙酯项目节能评估报告(节能专)
- 中国银杏内酯行业发展运行现状及投资潜力预测报告
- 建设项目竣工环境保护监测报告和林盛乐云计算南区110千伏输变电工程
- 培智学生足球训练中的适应性教学策略研究
- 延期交付合同范本
- 2021年6月大学英语四级考试真题全三套(含答案解析)
- 各种轴载换算计算方法
- 译林版五年级下册英语 Project 2课件
- 八年级英语15篇完形填空(附答案)
- GB∕T 9286-2021 色漆和清漆 划格试验
- 新教材人教版高中化学选择性必修3全册各章节知识点考点重点难点归纳总结
- 病假学生追踪记录表
- 生产组织供应能力说明
- 手榴弹使用教案
- 广东中小学教师职称评审申报表初稿样表
- 北师大七年级数学下册教学工作计划及教学进表
评论
0/150
提交评论