简介
Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。
安装与运行
通过Composer安装
可以在终端中运行 create-project 命令来安装 Laravel:
composer create-project --prefer-dist laravel/laravel blog
其中blog即是你laravel框架的目录文件夹
示例:
结果如下:
如果需要指定安装版本
composer create-project --prefer-dist laravel/laravel=8.5 blog
示例:
结果如下:
打开后可看到如下内容:
运行
示例:
在Laravel项目对应目录文件夹中,打开cmd命令窗口
运行命令
php artisan serve
接着再浏览器地址栏中输入 http://127.0.0.1:8000
路由
基本路由
构建基本路由只需要一个 URI 与一个 闭包,这里提供了一个非常简单优雅定义路由的方法:
Route::get('foo', function () {
return 'Hello World';
});
所有的 Laravel 路由都在 routes 目录中定义,这些文件都由框架自动加载。routes/web.php 文件用于定义 web 界面的路由。这里面的路由会被分配给 web 中间件组,它提供了会话状态和 CSRF 保护等功能。
路由器允许你注册能响应任何 HTTP 请求的路由:
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
示例:
重定向路由
如果要定义重定向到另一个 URI 的路由,可以使用 Route::redirect 方法。
Route::redirect('/here', '/there');
示例:
默认情况, Route::redirect 返回的状态码是 302 。如上面的例子
但你可以使用第三个可选参数自定义状态码:
Route::redirect('/here', '/there', 301);
视图路由
如果你的路由只需要返回一个视图, 你可以使用 Route::view 方法。
view 方法接受一个 URI 作为第一个参数,一个视图名作为第二个参数。此外,还可以通过第三个可选参数将一个数据数组传递给视图:
Route::view('/welcome', 'welcome');
Route::view('/welcome', 'welcome', ['name' => 'Taylor']);
示例:
视图页面在resources中创建
创建路由指向视图页面
结果如下所示:
路由参数
必填参数
可选参数
可以在参数后面加上?标记来实现,但前提是要确保路由的相应变量有默认值:
正则表达式约束
可以使用路由实例上的 where 方法约束路由参数的格式。where 方法接受参数名称和定义参数应如何约束的正则表达式:
Route::get('user/{name}', function ($name) {
//
})->where('name', '[A-Za-z]+');
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]+']);
路由命名
路由命名可以方便地为指定路由生成 URL 或者重定向。
通过在路由定义上链式调用 name 方法可以指定路由名称:
还可以指定控制器行为的路由名称:
注意:路由命名必须是唯一的
生成指定路由的 URL
一旦为路由指定了名称,就可以使用全局辅助函数 route 来生成链接或者重定向到该路由:
示例:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\UserController;
Route::get('/user/show2',
[UserController::class,'show2'] )->name('ss');
结果如下:
控制器
为了替代在路由文件中以闭包形式定义的所有的请求处理逻辑,你可能想要使用控制类来组织这些行为。控制器能将相关的请求处理逻辑组成一个单独的类。控制器被存放在 app/Http/Controllers 目录。
定义控制器
示例:
控制器绑定路由
use App\Http\Controllers\UserController;
Route::get('/user/show/{name}', [UserController::class,'show']);
以上结果为:
安装语言包
命令
composer require laravel-lang/lang
安装完成后,修改config中的app.php,把timezone和locale修改一下
然后在vendor目录中找到zh_CN目录:
vendor --> laravel-lang --> zh_CN
复制zh_CN到resources中的lang里面