登陆注册脚手架
邮箱认证,第一步,注册成功会给用户发送一个认证邮件;第二步,用户登录状态下,如果邮箱未认证,重定向到提醒验证邮箱的页面中。
中间件是什么,可以解决一部分登录判断相关的问题。
控制器的构建函数使用了中间件,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方法应该是资源名称和参数名称的关联数组。