




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、框架内核班-laravel快速入门第一课教育-peter主讲:进取之心敬畏之心利他之心感恩之心赤诚之心孝悌之心laravel的基本运行流程路由器一、路由器如何调用器所有 Laravel 路由都定义在位于 routes 目录下的路由文件中,这些文件通过框架自动加载。routes/web.php 文件定义了web界面的路由,这些路由被分配了web中间件组,从而可以提供session和csrf防护等功能。routes/api.php 中的路由是无状态的,被分配了 api 中间件组。对大多数应用而言,都是从 routes/web.php 文件开始定义路由。路由器用法在上面代码的代码中,我们为 get
2、方法传递了两个参数,第一个参数指明了URL,第二个参数指明了处理该 URL 的个路由将会响应 GET 请求,并将请求上器动作或者是闭包。get 表明这到指定的器动作或应用到闭包http请求方法在 Laravel 中我们较为常用的几个基本的 HTTP 操作分别为 GET、POST、PATCH、DELETE。GET 常用于页面POST 常用于数据提交PATCH 常用于数据更新DELETE 常用于数据删除这里先了解下有个大概印象有一些请求方法是不被浏览器支持,后面我们会具体的操作,我们先学习下路由参数传递在页面时常常需要传递参数,参数的传递也可以在路由当中进行传递Route:get('sto
3、re-index/name', function ($name) return $name;);也可以设置可选参数,对于一些可填可不填的可以选择不填Route:get('store-index/name?', function ($na return $name;);ll) 参数限制可以使用 where 方法来规范你的路由参数格式。where 方法接受参数名称和定义参数约束规则的正则表达式:Route:get('user/name', function ($name) )->where('name', 'A-Za-z+
4、9;); Route:get('user/id', function ($id) )->where('id', '0-9+');Route:get('user/id/name', function ($id, $name) )->where('id' => '0-9+', 'name' => 'a-z+');匹配多种请求形式假设我们想让当前的路由匹配多种形式的请求既想要匹配get请求,又想要匹配post1.指定请求形式2.任意形式都可以路由组路
5、由组共享路由属性,命名空间、前缀、中间件等,我们没有必要为每个路由单独设置共有属性,共有属性会以数组的形式放到 Route:group 方法的第一个参数中php artisan 命令简单使用Artisan 是 Laravel令行接口的名称,它提供了许多实用令来帮助你开发 Laravel 应用,它由强大的 Symfony Console 组件所驱动。我们可以利用artisan帮助我们创建创建,更加方便、节省时间想要查看所有可用的 Artisan 命令,可使用 list 命令:php artisan list每个命令都可以用 help 指令显示命令描述及命令参数和选项。想要查看帮助界面,只需要在命
6、令前加上 help 就可以了: php artisan helpphp artisan make:controller器模型等文件,不需要我们手动php artisan make:controller -plain name生成空白的路由器与器在路由表当中可以指定哪一个指定的器而不是一个闭包器放在<project>/app/Http/Controllers目录下文件名: Xx器Controller.php例: UserController.php注意: 单词首字母大写大驼峰规则 可以利用artisan命令创建器器类叫什么?命名空间叫什么?继承自谁?类叫XxController命名空
7、间是 AppHttpControllersweidian继承自AppHttpControllersController器与视图器中指定渲染某个视图,则需要使用到 view 方法,view 方法接收两要在个参数,第一个参数是视图的路径名称,第二个参数是与视图绑定的数据Blade 模板Blade 是 Laravel 中提供的一套模板引擎,在 Blade 视图中我们可以使用Laravel 为这套引擎定义的一些默认方法,并完全兼容 PHP 语法的书写。在项目运行时,Laravel 会把所有的 Blade 视图进行编译缓存成普通的 PHP 代码,因此你不必当心 Blade 会对应用产生负担。通用视图的创
8、建我们发现我们的视图文件,有很多代码都是重复的,导致代码变得不够灵活、简洁。因此我们需要对页面进行重构,把多余的代码从视图中独创建一个默认视图来进行存放通用代码。出来,单其中yield('content') 表示该占位区域将用于显示 content 区块的内容,而content 区块的由继承自 default 视图的子视图定义。子视图如何继承我们使用了 extends 并通过传参来继承父视图 layouts/master.blade.php 的视图模板。extends('layouts.master)使用 section 和 stop 代码来填充父视图的 content
9、 区块,所有包含在section 和 stop 中的代码都将入到父视图的 content 区块。yield的第二个参数现在父视图的代码已经嵌入到子视图里面,但是还有一点不足的地方,就是所有的标题名字都是固定的。因此我们接下来要做的就是进行优化,让不同页面显示不同的标题。页面标题注意的是,当 section 传递了第二个参数时,便不需要再通过 stop 标识来告诉 Laravel 填充区块会在具体哪个位置结束。数据库迁移-migration1.什么是数据库迁移?在 Laravel 中,我们使用 数据库迁移 来管理数据库表结构,迁移就像是数据库中的版本,它让团队成员之间能够轻松的修改跟共享应用程序
10、的数据库结构,而不用担心并行更新数据结构而造成等问题。同时也让Laravel 项目的部署变得很方便。不仅如此Migration 建表要比直接手动创建表或者 .sql 文件具备额外的管理数据库的功能,如:/重置/更新等数据库迁移-migration总结迁移的好处如下:多人并行开发; 代码版本管理; 如:/重置/更新等;数据库版本兼容多种数据库系统;部署方便。所有创建的迁移文件都被统一放在 database/migrations 文件夹里。打开该文件夹我们可以看到,Laravel 已默认为我们创建好了两个迁移文件:数据库迁移-migration创建可以通过命令行创建数据库迁移文件,迁移文件将会被放
11、置在php artisan make:migration create_agent_table-create=agentsphp artisan make:migration update_to_agents-table=agents-create=xx表,则该类的up()中调用Schema:create() ,即创建表。-table=xx表,则该类的up()中调用Schema:table() ,即修改表。数据库迁移-migration迁移结构一个迁移类会包含两个方法: up 和 down 。 up 方法可为数据库添加新的数据表、字段或索引,而 down 方法则是 up 方法的逆操作。migr
12、ation 表字段类型数据库迁移-修改字段假设再执行了数据迁移之后又想对数据表进行字段增加、或者重命名等等一系列修改动作首先我们需要引入一个扩展类,默认没有加载需要我们composer require doctrine/dbal去引入数据迁移操作当迁移文件做好的之后,以下几个命令,执行迁移文件.php artisan migratephp artisan migrate:rollback php artisan migrate:reset php artisan migrate:refresh php artisan migrate:status php artisan migrate:ins
13、tall migrate: 执行所有迁移文件migrate -force: 强制执行最新的迁移文件migrate:rollback回退到执行迁移前的状态migrate:reset 回退到所有迁移之前的初始状态migrate:refresh 回退到初始状态,再次执行所有迁移文件Eloquent M-快速上手1.Mm m致。放在哪儿? 命名空间是什么?文件默认放在<project>/app目录下,命名空间是App .文件也可以自由的放在其他目录,但请注意命名空间和目录路径保持一2.在laravel中约定(非强制),表名叫xxs ,复数形式。如用户(user)表叫users ,(shop
14、)表叫agents,类和表名有关系,一般表名去掉s ,即为M的类名.Eloquent M-创建定义模型,使用artisan命令创建模型php artisan make:mShop个 数据库迁移,可以使用 -migration当你或 -m 选项:个模型时想要顺便php artisan make:mweidian/Shop-mm的约定1.表名的约定 默认表名为M 表名名+s ,可能通过的m类的table属性来指定protected $table = 'yourTableName'2.id的约定 M默认认为,每张表都有一个叫做id的主键,你可以通过primaryKey属性来指定主键列
15、名.protected $primaryKey = 'Xx_id'3.created_at ,updated_at字段 M默认有这2个字段,且在更新行时,会自动帮你更新这两个字段. 如果不想这样,甚至不想要这2个字段,可以把m timestamps属性设为falsepublic $timestamps = false;的Laravel 数据库-数据填充有时候我们需要一些测试数据的时候,就只能手动的一条条的往里面添加这样太浪费时间了,laravel给我们提供了非常方便的数据填充功能Laravel 可以用 seed 类轻松地为数据库填充测试数据。所有的 seed 类都存放在 dat
16、abase/seeds 目录下 可以利用artisan 创建这个命令php artisan make:seederAgentsTableSeeder利用Faker开源库帮助我们完成数据的填充,Faker当中有非常多的函数可供使用数据填充关系Laravel 数据库-数据填充创建多条数据的填充,在factories文件下有个使用模型工厂MFactory.php的文件可以定义数据到模型当中define 方法中第一个参数表示关联shops模型类,第二个参数传入的是$faker,Faker是一个开源类库,主要用于些测试数据,比如号码,人名,IP地址等等,这里Laravel内置了Faker,因此可以直接使用.Laravel 数据库-数据填充定义了模型之后我们需要回到创建的数据填充文件,定义运行哪个模型,以及创建多少条数据利用factory方法,为某个模型创建多条数据然后利用artisan命令运行填充php artisan db:seed-class=UsersTableSeederM的操作-增删改查1.普通增加,直接使用save方法M的操作-批量赋值save方法虽然可以用来更新,但是用save方法那样一个一个的设置属性值, 如果模型属性很多的话,使用save简直是噩梦。我们可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年市政工程极简备考试题及答案
- 工程经济与信息技术的结合试题及答案
- 2025年行政管理学学术探讨试题及答案
- 2025年建筑规划方案试题及答案探索
- 管理心理学专项测试题及答案
- 有效总结2025年建筑工程考试试题及答案
- 水电机组原理试题及答案探讨
- 行政管理市政学考前必读试题及答案
- 公文写作的技巧与优势试题及答案
- 市政工程控制管理考核试题及答案
- 企业清产核资工作底稿
- 细胞膜-系统的边界【公开课教学PPT课件 高中生物】
- 太原理工大学年博士研究生招生入学考试试题
- GB/T 8237-2005纤维增强塑料用液体不饱和聚酯树脂
- GB/T 7307-200155°非密封管螺纹
- GB/T 14337-2008化学纤维短纤维拉伸性能试验方法
- 社团课数独入门(课件)
- 全国高中语文优质课一等奖《雷雨》 课件
- L4-《采购与供应策略》-讲义课件
- 软件测试 教学大纲
- 合欢树史铁生课件
评论
0/150
提交评论