路由缓存:路由缓存不会作用于基于闭包的路由。要使用路由缓存,必须将闭包路由转化为控制器路由。
1、如果你的应用完全基于控制器路由,可以使用 Laravel 的路由缓存,使用路由缓存将会极大降低注册所有应用路由所花费的时间开销,在某些案例中,路由注册速度甚至能提高100倍!想要生成路由缓存,只需执行 Artisan 命令 :
php artisan route:cache
2、运行完成后,每次请求都会从缓存中读取路由,所以如果你添加了新的路由需要重新生成路由缓存。因此,
只有在项目部署阶段才需要运行
route:cache
命令
,本地开发环境完全无此必要,开发阶段直接删掉 bootstrap/cache/routes.php 文件即可。
想要移除缓存路由文件,使用
route:clear
命令即可:
php artisan route:clear
配置缓存:开发阶段没必要生成配置缓存文件,不然你每次更新.env文件都要执行:
php artisan config:cache
一、假如你使用了路由缓存文件,如果是laravel原生的路由一般重新加载配置和路由文件就能解决。
php artisan config:cache & php artisan route:cache
二、如果是使用Dingo等路由扩展包,第一次就容易出错
1、清理路由缓存,报错无果
php artisan api:cache
#执行后如果success 也会生成 bootstrap/cache/routes.php,这个命令将缓存你的 API 路由,和你主要应用的路由一起。当执行这个命令的时候会自动执行 route:cache 命令。所以执行完这个命令后就不要在执行 route:cache 了。
Unable to prepare route [/api/version] for serialization. Uses Closure
2、查看路由,没有显示,但其实我api.php写的有路由闭包
#查看路由
php artisan api:routes
Your application doesn't have any routes.
#解释:这个命令将生成你的 API 路由列表。这个命令的效果类似 Laravel 中的 route:list 命令。
除了标准的使用方法,你还可以使用以下的过滤器:--versions 和 --scopes。
$ php artisan api:routes
$ php artisan api:routes --versions v1
$ php artisan api:routes --scopes read_user_data --scopes write_user_data
3、Postman访问,400
The version given was unknown or has no registered routes
总结:不写了,反正就是报错嘛,究其原因为:
1、laravel本身的 bootstrap/cache/routes.php 表示路由缓存,一般我们都是写成控制器路由或资源路由的形式,它
不支持
路由闭包的形式。
2、DingoApi就是需要写成闭包的形式。
三:解决办法:就是放弃使用laravel自带的路由缓存,执行命令:
php artisan route:clear
这样,bootstrap/cache/routes.php文件夹就消失了,当你执行laravel的:php artisan route:cache 或者Dingo的:php artisan api:cache,文件就又生成了,这个可以再项目上线后使用,加快路由加载速度。
DingoApi的三种写法:
#命名路由
$api->version('v1',[
'namespace' => 'App\Http\Controllers',
], function ($api) {
$api->post('reg',['as'=>'reg','uses'=>'ApiController@register']);
$api->version('v1',[
'namespace' => 'App\Http\Controllers',
], function ($api) {
$api->post('reg','ApiController@register');
$api->version('v1', function ($api) {
// $api->get('reg', 'App\Http\Controllers\ApiController@register');
//下一个版本v2 ,对于网页端接口来说命名路由好一点
$api->version('v2',[
'namespace' => 'App\Http\Controllers',
], function ($api) {
$api->post('reg',['as'=>'reg','uses'=>'ApiV2Controller@register']);
前言:路由缓存:路由缓存不会作用于基于闭包的路由。要使用路由缓存,必须将闭包路由转化为控制器路由。1、如果你的应用完全基于控制器路由,可以使用 Laravel 的路由缓存,使用路由缓存将会极大降低注册所有应用路由所花费的时间开销,在某些案例中,路由注册速度甚至能提高100倍!想要生成路由缓存,只需执行 Artisan 命令 :php artisan route:cache2、运行完...
protected $namespace = ‘App\Http\Controllers’;
注释打开完美解决问题## 标题## Target class [控制器] does not exist.
php artisan功能测试1、
php artisan 命令列表2、常用命令3、route4、make4.1 make:controller4.2 make:model4.4 make:migration5、migrate6、seed7、其他命令后续
Artisan 是
Laravel 自带的命令行接口,他提供了许多使用的命令来帮助你构建
Laravel 应用 。
1、
php artisan 命令列表
2、常用命令
查看
artisan命令
php artisan
php artisan list
1.安装dingoapi之后,api路由访问报错:The version given was unknown or has no registered routes
解决方案:清理api缓存 php artisan api:cache
这时:Unable to prepare route [api/helloworld] for serialization. Uses Closure.这个意思是说,api清理缓存时不能有闭包形式的路由。
$api = app('Dingo\Api\Routing\Route
//清除路由缓存 用 php artisan api:cache 代替 php artisan route:cache
//清除配置缓存 php artisan config:clear
//清除缓存 php artisan cache:clear
//开启路由缓存 php artisan route:cache (开发环境不要开启,否则每次修改开发路由都会有问题,可以执行这个 ph...
laravel项目运行 php artisan cache:clear 命令报错
vscode 项目运行 php artisan cache:clear 命令 出现报错 Failed to clear cache. Make sure you have the appropriate permission
您最近是否从以前的Laravel版本升级了?该Failed to clear cache. Make sure you have the appropriate permissions.可由缺少的文件夹所
Laravel中的php artisan是一个命令行接口工具,用于帮助构建Laravel应用。通过运行该命令,您可以执行各种操作,如查看Laravel版本、启动开发服务器、列出路由以及生成控制器等。
要查看Laravel版本,您可以使用以下命令:
php artisan --version
如果您想使用PHP内置的开发服务器来启动应用程序,可以运行以下命令:
php artisan serve
Artisan提供了许多有用的命令,您可以使用其中一些来构建和管理您的Laravel应用。以下是一些常用的Artisan命令示例:
- 列出所有可用的Artisan命令:`php artisan list`
- 列出所有的路由:`php artisan route:list`
- 生成路由缓存:`php artisan route:cache`
- 清除路由缓存:`php artisan route:clear`
- 生成控制器:`php artisan make:controller`
希望以上信息对您有帮助!如果您还有其他问题,请随时提问。