1、目录结构
① app目录:项目的核心目录,主要用于存放核心代码,也包括控制器、模型以及路由。
控制器存放位置:
模型存放位置:
在实际项目开发中,建议把模型存放在app/Http/Models自定义文件夹中。
② config目录 :项目的配置目录,主要存放配置文件,如数据库配置
③ public项目公用目录,主要用于存放images/css/js等资源文件
④ resources资源目录,主要用于存放视图文件
⑤ vendor扩展目录,扩展插件主要存放在此目录下
⑥ .env环境配置文件,主要用于配置项目信息如数据库信息、缓存信息等等
⑦ artisan脚手架,主要用于自动生成代码的,非常好用
⑧ composer.json,composer依赖包配置文件
⑨ 项目入口文件index.php
2、Laravel框架中的控制器
① 什么是控制器
MVC的核心,主要用于接收用户请求,处理业务逻辑。
② 控制器的存放目录
③ 控制器命名规则,基本语法:
控制器名称:Index,记住首字母要大写
关键词:Controller
定义Index控制器,其命名为:IndexController
④ 使用脚手架生成IndexController控制器
在DOS窗口中,切换到gcwapp项目目录,如下图所示:
使用php artisan make:controller 控制器名称生成自定义控制器,如下图所示:
创建成功后,如下图所示:
在IndexController控制器中,定义index方法,访问后如下图所示:
运行结果:
导致以上问题的主要原因在于虚拟主机的配置文件设置问题,找到upupw的虚拟主机配置文件,删除以下代码即可:
配置完成后,记得重启Apache,否则以上设置无法生效。
3、Laravel框架中的路由
在ThinkPHP框架中,当我们在URL地址中,传递m、c、a三个参数时,系统会自动跳转到指定模型中指定控制器的指定方法,这些处理过程都是由框架自动完成的。但是,在Laravel框架中,其并没有指定固定参数,其路由必须要手工进行配置。
① 路由配置文件
② 在routes.php配置文件中配置路由
③ 自定义路由的基本语法
//get请求
Route::get(‘/’,function(){
return view(‘welcome’);
});
//post请求
Route::post(‘goods/store’,’GoodsController@store’);
//controller请求
Route::controller(‘index’,’IndexController’);
特别注意:使用controller请求时,其方法如果是get请求,必须加前缀get其方法如果是post请求,必须加前缀post
//resource请求
Route::resource('article','ArticleController');
特别注意:使用resource请求时,其内部的方法都是固定的,如下图所示:
4、Laravel框架中的DB类
① 设计数据库
数据库名称:gcwapp
article数据表:gcw_article
数据表字段:
字段名称 | 字段类型 | 字段长度 | 默认值 | 字段属性 | 是否为空 | 备注 |
id | mediumint |
|
| primaryKey | not null | 编号 |
title | varchar | 40 |
|
| not null | 标题 |
description | varchar | 255 |
|
|
| 描述 |
content | text |
|
|
|
| 内容 |
author | varchar | 20 |
|
|
| 作者 |
addtime | int |
|
|
|
| 添加时间 |
建议阅读phpcms v9的数据字典:
http://www.phpcms.cn/doc/PHPCMSDocumentor/mysql_data_structure.html
创建数据库与数据表:
② 在Laravel中配置mysql数据库信息(牵连.env与config/database.php)
首先配置.env文件:
打开config/database.php,配置信息如下:
③ 创建Article控制器,如下图所示:
④ 在routes.php中设置url路由:
⑤ 在Article控制器中定义以上四个方法
⑥ 引入DB类,实现CURD操作
建议阅读DB类详解:http://www.jb51.net/article/54713.htm
实现add添加功能:
insert方法,返回布尔类型的值,true代表添加成功,false代表添加失败。
实现delete删除功能:
delete方法,返回受影响的行数。
实现edit更新功能:
update方法,返回受影响的行数。
实现index查询功能,基本语法:
查询一条记录:first()方法
查询多条记录:get()方法
示例代码:
示例代码:
实现数据统计:
实现offset与limit:
5、Laravel框架中的模型
① 什么是模型
所谓的模型就是企业数据逻辑,负责与数据库进行交互,实现CURD等功能。
② 模型的存放位置
默认情况下:存放在Laravel框架的app目录下
但是,在实际项目开发中,建议把模型放置于app/Http/Models(手工创建)目录下
③ 模型的命名规则
数据表名称+首字母大写
④ 使用php脚手架生成自定义模型
运行结果:
④ 更改Model模型的存放位置
复制生成的自定义模型到app/Http/Models目录,如下图所示:
复制完成后,必须要更改命名空间的位置(非常重要)
⑤ 使用Laravel中的模型,定义关联表,定义表主键,定义时间戳,定义白名单
⑥ 在控制器中使用模型操作数据
获取所有数据:
获取指定id的数据:
使用AR模式实现添加与更新功能:
使用delete方法实现删除功能:
6、Laravel框架中的视图
① 什么是视图
所谓的视图,就是我们常见的用户界面,主要用于数据的显示
② 定义位置
③ 视图的命名规则
welcome.blade.php 欢迎视图
welcome视图名称
.blade.php 视图后缀
④ 在控制器中调用视图
⑤ 定义welcome.blade.php视图
运行结果: