开始学习Laravel
前言
Laravel是 Taylor Otwell 开发的一款基于 PHP 语言的 Web 开源框架,旨在实现的Web软件的MVC架构。让你可以通过简单、优雅的表达式语法开发出很棒的Web应用,Laravel同时拥有更富有表现力的语法、高质量的文档、丰富的扩展包,可以让你从杂乱的代码中解脱出来。
安装
安装composer
Laravel 使用 Composer 来管理项目依赖。因此,在使用 Laravel 之前,请确保您的机器上已经安装了 Composer。
通过composer全局安装laravel
1 | composer global require laravel/installer |
使用laravel new blog(you project name)
Laravel 使用 Composer 来管理项目依赖。因此,在使用 Laravel 之前,请确保您的机器上已经安装了 Composer。
1 | laravel new blog(you project name) |
使用PHP内置服务器提供服务
如果你在本地安装了 PHP,并且你想使用 PHP 内置的服务器来为你的应用程序提供服务,则可以使用 Artisan 命令 serve。该命令会在 http://localhost:8000 上启动开发服务器:
1 | php artisan serve |
配置数据库
修改数据库的连接配置文件
数据库的连接配置文件位于
config/database.php
,和很多其他 Laravel 配置一样,你可以为数据库配置多个「连接」,然后决定将哪个「连接」作为默认连接。
1 |
|
修改 .env
文件内的变量
当然,默认数据库连接、数据库名称以及数据库用户名和密码等敏感信息都保存到
.env
文件中了,然后通过env
辅助函数读取:
1 | DB_CONNECTION=mysql //laravel默认使用mysql |
运行命令迁移数据库
修改好
.env
配置文件的变量,需要在MySQL中创建一个laravel_demo
的数据库,然后运行数据库迁移命令行执行数据库迁移
1 | php artisan migrate |
快速入门安装基本入门套件
Laravel Breeze
Laravel Breeze 是一个最小化的 Laravel 认证功能完整实现扩展包,包含了登录、注册、密码重置、邮箱验证和密码确认等功能。Laravel Breeze 的视图层通过 Blade 模板 + Tailwind CSS 实现。Breeze 为构建一个全新的 Laravel 应用提供了一个良好的起点。
首先需要创建一个新的
laravel
应用,并且配置好数据库,然后运行数据库迁移;
1 | laravel new blog |
创建好新的laravel应用后,你可以通过Composer来安装Laravel breeze:
1 | composer require laravel/breeze --dev |
安装好 Laravel Breeze 扩展包后,可以运行
breeze:install
Artisan 命令,这个命令会发布认证视图、路由和控制器等资源到项目目录,这样一来,你可以可以完全接管这些认证代码的功能实现和自定义了。此外,还需要编译前端资源让 JavaScript 和 CSS 代码生效:
1 | php artisan breeze:install //发布认证视图、路由和控制器等资源到项目目录; |
接下来,你就可以在浏览器中访问
/login
和/register
URL 了,所有的 Breeze 路由都定义在routes/auth.php
文件中。
laravel
路由入门
对任何一个 Web 应用框架而言,通过 HTTP 协议处理用户请求并返回响应都是核心必备功能,也就是说,对于我们学习和使用一个 Web 框架,第一件要做的事情就是定义应用路由,否则,将无法与终端用户进行交互。而我们的 Laravel 从入门到精通系列教程之旅也将从路由开始,在这篇真正意义上的开篇教程中,我们将学习如何定义路由,然后将其指向要执行的代码,并处理各种路由;需求。
路由入门
在创建的laravel应用中,定义路由有两个入口,一个是
routes/web.php
,用于处理终端用户通Web
浏览器直接访问的请求,另一个是routes/api.php
,用于处理其他接入方的API
请求;
定义路由最简单的方式就是在
routes/web.php
中定义一个路径以及一个映射到该路径的闭包函数:
1 | //routes/web.php |
运行
php artisan serve
访问应用首页时,就可以看到页面显示Hello,World!
这一行字符串。这就是一个简单的
laravel
路由定义,但是涵盖了一个Web
框架的基本功能:处理请求,返回响应;
使用
match
和any
实现相应多个或所有HTTP
请求的路由;
1 | Route::match(['post', 'get'], 'match', function(){ |
控制器Controller
控制器的基本构造
命名空间
引入命名空间
类名 继承基类
使用命令在应用的
app/Http/Controllers
目录下创建一个UserController
控制器
1 | //使用命令创建 名为 UserController的控制器 |
使用路由调用控制器方法
1 | //Route::请求方法('请求的url地址',[控制器::class, '引用的控制器方法']); |
视图,数据库操作
简单的数据库操作
在应用中新建的
UserController
控制器中编写insert类
1 | public function insert(){ |
编写路由调用insert类
1 |
|
在应用中新建的
UserController
控制器中编写增删改查 功能类
1 | class UserController extends Controller |
在
web.php
路由表中引用控制器的功能类
1 | //创建路由组 整理 增删改查 |