Laravel-wiki笔记
清空缓存
php artisan view:clear
php artisan cache:clear
php artisan route:clear
laravel关联查询
解释得还可以: https://www.cnblogs.com/xzj8023tp/p/9254449.html
laravel-blade模板
原样输出 {!!$data!!} 一对花括号
输出{{$data}} 两对花括号
无状态的API认证
https://laravelacademy.org/post/8270.html
https://www.cnblogs.com/liwei-17/p/9249546.html
看守器: 定义了该如何认证每个请求中用户
提供器: 持久化存储数据库
认证Token 登录注册: 会响应接口认证参数 api_token
- 请求query里面 api_token = xxx
- 请求header里面: Authorization = "Bearer "+api_token
laravel rest 路由请求方法
_method: get 查询
_method: POST 新增
_method: PUT 修改
_method: DELETE 删除
laravel 很多的扩展就是个坑
测试环境: http://bjlf365.cn/vendor/laravel-admin-ext/simditor/simditor-2.3.25/styles/simditor.css
本地: http://test-local.bohua.com/vendor/laravel-admin-ext/simditor/simditor-2.3.20/styles/simditor.css
作者突然就升级了,所以composer安装最好要指定具体的版本号
composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
composer update - 从 composer.json 安装最新扩展包和依赖;
composer update vendor/package - 从 composer.json 或者对应包的配置,并更新到最新;
composer require new/package - 添加安装 new/package, 可以指定版本,如: composer require new/package ~2.5.
这个博客解释的还是可以的: https://blog.csdn.net/wulove52/article/details/78392663
composer require "jxlwqq/simditor:1.0.0"
composer require "jxlwqq/simditor:1.0.0" 指定版本号下载
laravel 框架核心
- IoC控制反转 inversion of control
- DI 依赖注入
- 接口约定 契约 interface接口
- 服务提供者provider service provider
xxx
- 内核 中控(http console)
- 中间件
- 服务提供器 providers
服务提供器是引导 Laravel 应用程序真正的关键。
创建应用程序实例、注册服务提供器,并将请求交给被引导的应用程序。就是这么简单
想要构建强大的大型应用,至关重要的一件事是:要深刻的理解 Laravel 服务容器
IoC 控制反转 Inversion of control 面向对象编程中的一种设计原则,可以用来降低计算机之间的耦合度
常见的方式叫做依赖注入(Dependency Injection,简称DI)
还有一种方式叫“依赖查找”(Dependency Lookup)
通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
IoC容器管理对象的生命周期,依赖关系,
这种由外部负责其依赖需求的行为,我们可以称其为 “控制反转(IoC)
框架的设计原则
强调与注重敏捷开发;
约定高于配置(Convention over configuration);
DRY(Don't repeat yourself)不要重复自己;
「编程愉悦性」很重要。
作为工匠,我更愿意把我有限的生命用在作品上,而不是对工具的无止境的学习上。
he PHP Framework For Web Artisans。人家这框架是为web工匠准备的,不是给新手用的。何为工匠精神?对每一处细节的要求都达到变态的程度。
依赖注入、控制反转、facade之类的
路由
- 支持自定义路由
- 支持路由分组
- 支持Restful
PSR-2 编码规范
PSR-4 自动加载规范
PSR-16 缓存驱动规范
数据模型关系
1、一对一使用方法:hasOne()
2、一对多使用方法:hasMany() 文章->评论
3、多对一使用方法:belongsTo() 一对多的反向 ,评论->文章
4、多对多使用方法:belongsToMany() 用户-用户角色关联-角色
phpstorm编辑器友好性支持
1.安装插件 composer require barryvdh/laravel-ide-helper
2.注册服务config/app providers: Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class
- 生成_ide_helper文件: php artisan ide-helper:generate
https://blog.csdn.net/qq_32723451/article/details/88898019
https://learnku.com/articles/19092
千万别用 IndexController 这个控制器,会有问题的
本地生成该控制器没有问题,但是线上环境会出现问题。可能是线上环境自动加载环境冲突的。
明明 IndexController 控制器存在,就是报错误说不存在
ocal.ERROR: Class App\Http\Controllers\indexController does not exist {"exception":"[object] (ReflectionException(code: -1): Class App\\Http\\Controllers\\indexController does not exist at /data/app/bohua_prod/vendor/laravel/framework/src/Il luminate/Container/Container.php:752
该控制改个其它名字就没有问题了,真是奇葩
laravel ORM对象复制
使用 replicate 方法,会自动删除复制对象的主键ID,可以保存
$user = UserModel::find(1,['id','username']);
$newUser = $user->replicate();
$newUser->balance = 1099;
$newUser->save(); // 主键是自增,这里不用设置就可以保存成功
使用clone,还是在原有ORM对象上修改
$user = UserModel::find(1,['id','username']);
$newUser = clone $user;
unset($newUser->id);
$newUser->balance = 1234;
$newUser->save(); // 这里保存还是使用的是原有的主键ID
还是使用内置的 replicate 方法复制对象比较的好,修改属性,主键都不会影响原来的ORM对象
keyword :laravel 克隆 ORM对象