laravel初识
简介
MVC框架
PHP应用程序的开发形式
直接使用PHP语言进行面向过程的网页开发
使用面向对象形式
使用MVC框架 极大的提高生产力
MVC框架基本思想
把应用程序强制性的划分成三部分:模型层、视图层、控制器层
常用的MVC框架
TP、COdeIgniter、laravel、symfony、zend framwork、YII等
laravel准备工作
PHP开发程序
php_fig
官方网站:http://www.php-fig.org/
作用:制定一系列PHP开发规范,是未来PHP框架所需要遵循的规范
包含的内容
PSR-0
PSR-1
PSR-2
PSR-3
PSR-4
composer
官方网站:http://getcomposer.org/
安装
php环境要求:php5.4以上
php扩展支持:openssl扩展
php.exe文件路径
使用
通过命令下载资源
require 直接下载依赖库,同时把依赖库配置信息写入到composer.json文件中
install 直接按照composer.json配置文件指明,下载依赖库
借助配置文件下载资源
require配置项
"库完整名称":"版本号"
使用下载到的资源
下载到的外部库,会自动位于当前目录下的vender目录中
使用下载资源时,直接在应用程序入口文件中,引入'vender/autoload.php'文件,就可以直接使用外部库和命名空间
参考网站
http://laravel.com/
http://www.golaravel.com/
http://laravel-china.org/
https://github.com
http://stackoverflow.com/
http://baigoogledu.com/
安装laravel
命令:composer create-project laravel/laravel --prefer-dist
laravel/laravel和laravel/framwork
laravel/laravel:laravel框架的示例程序,已经包含laravel框架源代码和其他的外部库
laravel/framwork:仅仅laravel框架源码
目录结构
app目录:应用目录
config:配置文件
database目录:数据库迁移migrate'
public:入口文件|静态资源文件
resource:视图文件
vendor:外部库(包含laravel框架源码)
.env:laravel框架配置
运行第一个laravel程序
直接运行:通过url访问public目录
配置虚拟主机:phpstudy配置
站点管理器
监听端口号配置
数据库迁移
数据库迁移简介
migrate简介
方便团队开发,一次更改,团队成员都会受到影响
直接使用PHP代码,而不是使用sql语句来操作数据库
命令:php artisan migrate
删除自带的用户认证模块:php artisan fresh
配置数据库账号信息:.env文件
创建msg数据表
创建数据库文件
目录:database\migrations
年_月_日_时分秒_create_表名_table.php
migrate
参考网站:
www.cnblogs.com/huangbx/p/laravel_3.html
laravel-china.org/docs/5.0/migrations
segmentfault.com/a/1190000002584573
数据库填充
创建模型类
一个数据库模型类对应一个数据表
目录:app/目录下直接创建
文件名:表名.php
表名首字母大写,并且去掉s后缀
比如msgs数据表,所对应的模型文件为Msg.php
模型类结构:类名 extends Model
数据填充
数据填充文件
位置:database/seeds/
文件名:表名TableSeeder.php
数据填充文件基本结构 类名 extends Seeder
执行数据库填充命令
在databaseSeeder中调用
php artisan db:seed
可能会出现问题
引入类完成命名空间名
使用composer命令 composer dump-autoload
路由功能
应用程序目录结构
app目录:应用程序核心目录
http目录:控制器文件目录,路由文件目录
模型文件:默认情况下在app/下
config目录:应用程序配置文件目录
.env配置文件:给出最常用的配置,这些配置会被config目录中的配置文件调用
database:数据库迁移
public:应用程序入口文件,静态资源等(js.css.图片等)
resource:视图文件目录
storage:应用程序动态生成日志缓存生成视图文件等目录
路由功能使用
作用:把用户的http请求交给指定的控制器或者功能来处理它
路由三种常见形式
直接http请求类型路由
Route::get('url信息','处理的逻辑地址或功能代码')
Route::put('url信息','处理的逻辑地址或功能代码')
Route::post('url信息','处理的逻辑地址或功能代码')
Route::delete('url信息','处理的逻辑地址或功能代码')
Resource路由 restful路由
Route::resource('url信息','处理的逻辑地址或功能代码')
Controller控制器路由
Route::controller('url信息','控制器名称')
路由的处理
把路由的处理交给控制器的某个动作处理
直接处理路由(闭包函数)
路由参数
Route::get('view|{id?}',function($id){
return 'msg/view/'.$id;
})
参考网站
http://www.golaravel.com/laravel/docs/5.0/routing
控制器
创建控制器类
手工创建
目录:app/http/controllers/
文件名:控制器名Controller
需要继承laravel框架控制器
artisan命令行创建:php artisan make:controller 控制器名
要使用artisan命令时必须在laravel根目录下进行
说明:标准restful形式URL
index()
create()
store()
show()
edit()
update()
destroy()
控制器和路由
为控制器绑定路由时,可以直接使用http请求形式的路由
每一个url绑定到某一个动作上
Route::get('view|{id?}',MsgController@index)
RESTful形式的路由(只支持7中动作)
Route::resource('msg',MsgController)
隐式控制器路由
Route::controller('msg',MsgController)
控制器中需要get方法名
getIndex()---/index
视图
控制器中加载视图
直接使用return '字符串';返回
在控制器中返回视图文件
return view('视图文件名')
注意:视图文件默认位于resource/view下
控制器传递数据给视图
传统形式:view('视图文件')->with('k','v')
魔术形式:view('视图文件')->withName('v')
blade模板
视图文件可以是php原生代码文件,也可以使用laravel自带的blade模板
blade模板
命名:文件名.blade.php
支持layout布局、原生php代码、blade标签等{{}}
layout布局
@yield
@extends @endextends
@section
@foreach @endforeach
留言板示例
控制器中创建动作
动作和路由要有绑定
读取数据、显示视图(把数据传递给视图)
定制路由:基本http请求
创建视图文件
视图文件
视图文件中实现控制结构:循环、选择
从数据库中读取数据
模型类基本结构
如何获取所有数据
获取到的数据我们可以使用foreach循环结构依次处理每一个对象
添加留言
CSRF保护
<input type="hidden" name='_token' value="{{ csrf_token() }}">
接收表单数据
路由问题
当前动作只需要视图,可以直接使用闭包形式,其他使用控制器动作形式
使用request::input()接收数据
重定向
redirect('url')
redirect()->route('路由名称')
删除留言
模型类::destroy(主键)