Laravel学习记录(九)

登陆注册脚手架

邮箱认证,第一步,注册成功会给用户发送一个认证邮件;第二步,用户登录状态下,如果邮箱未认证,重定向到提醒验证邮箱的页面中。

中间件是什么,可以解决一部分登录判断相关的问题。

控制器的构建函数使用了中间件,auth登录,verify和signed绑定

trait是什么?

用户认证成功触发了verified事件,

会话是什么?

找回密码

资源控制器,资源路由

路由对应控制器

队列允许异步执行消耗时间的任务,比如请求一个API并等待返回的结果,这样就可以有效的降低请求响应的时间。因为API请求的时候可能会发生超时情况,如果发生了不可预知的错误,用户就不能发帖了。

队列

经典的MVC架构

权限和角色

游客、用户、管理员和站长

laravel-permission用来扩展权限

角色的模型表
权限的模型表
模型和角色的关联表,用户拥有什么角色在此表中定义,一个用户可以有多个角色
角色拥有的权限关联表,如管理员拥有查看后台的权限都是在这张表进行定义,一个角色可以拥有多个权限
模型和权限关联表,一个模型可以有多个权限

用户只能通过角色来获取权限,用户不单独拥有权限

权限名字的定义,建议用下划线分隔

要想在过滤后的查询中进行多次查询,一般会使用query()方法,但是使用了操作之后,就会修改掉query的值,要想重复使用query,就要克隆这个query,用(clone query)来实现。

检查日期有特定检查时间的where函数

软删除可以用restore()恢复数据

用all可以指定返回的列。在查找列的时候,可以用as返回具有不同名称的任何列。

可以指定时间字段的名字。

可以用latest和oldest来用时间来排序

Carbon的now方法可以自动转换成日期无需转换成日期

find()不止可以查询一条数据,传入多个ID的值会返回这些结果的集合。第二个参数可以指定只返回哪些字段

数据库事务:

DB::transaction(function () {
    DB::table('users')->update(['votes' => 1]);

    DB::table('posts')->delete();
});

如何判断表是空表,可以用exists和count来实现本地的,exists返回的是布尔值,count返回的是条目的数量。

这个模型之间的对应关系是什么东西?

Artisan 命令
confirm() 确认
perialipate() 预期输入
choice() 选择
从任意处启动脚本,使用Artisan::call()

用Log::info
dd可以直接接在SQL的语句上面实现

Log::withContext()将用来区分不同请求之间的日志消息

路由

分组中的分组
在路由中可以在分组中创建分组来实现为 夫分组中的某些路由分配中间件
快速从路由导航到控制器

Route::get('page', [\App\Http\Controllers\PageController::class, 'action']);

这样的写法就可以实现到控制器的跳转,相比XXXconrtoller@xxx要长一点,要想要简洁一点可以引入控制器的类

没有匹配到任何路由

// 一些其他的路由
Route::fallback(function() {
    return "出错了";
});

throttle:60,1

names 给路由命名

资源型控制器

php artisan make:controller PhotoController –resource
可以生成资源型控制器,包括每个资源操作的方法。

index路由,create路由,store路由,show路由,edit路由,update路由,destroy路由

如果没找到隐式绑定的资源模型,则会生成状态码为404的http响应。

资源型路由可以用only和except来指定动作的类型。

use App\Http\Controllers\PhotoController;

Route::resource('photos', PhotoController::class)->only([
    'index', 'show'
]);

Route::resource('photos', PhotoController::class)->except([
    'create', 'store', 'update', 'destroy'
]);

命名资源路由参数,默认情况下,资源路由会根据资源名称的单数形式创建资源路由的路由参数,可以使用parameters方法来覆盖资源路由名称,传入parameters方法应该是资源名称和参数名称的关联数组。