Laravel 执行“php artisan route:cache”报错“Unable to prepare route [/] for serialization. Uses Closure.”解决办法

我用laravel在部署的时候,需要优化路由加载,于是,执行命令:

php artisan route:cache

结果报了如下错误:

Unable to prepare route [/] for serialization. Uses Closure.

Unable to prepare route [/] for serialization. Uses Closure.

 

这个异常的错误信息,提示的已经非常明确了:大概意思就是说在闭包里边,是不能够进行路由缓存的。那么现在就有两种办法:

 

 解决办法

第一种:想要继续使用闭包,那就只能放弃路由缓存(至少目前我没有其他办法,如果你有,记得告诉我)。

第二种:那就是在路由里边,也就是route.php中,不要使用闭包的方式,统统改为控制器。

 

当然,我是选择了第二种办法,具体例子操作步骤如下:

1、创建laravel 项目时候。web.php 路由文件,里边有个默认的 welcome欢迎页;

Route::get('/', function()
{
    return veiw('welcome');
});

修改为

Route::get('/', 'HomeController@index');

 

2、然后再新建一个home控制器;

<?php

namespace App\Http\Controllers;
use Illuminate\Routing\Controller as BaseController;

class HomeController extends BaseController
{
    
    public function index(){
        return view('welcome');
    }
}

 

3、此时在执行“优化路由加载命令:php artisan route:cache”成功!

php artisan route:cache

头像
  • ¥ 15.0元
  • 市场价:15.0元
  • ¥ 45.0元
  • 市场价:45.0元
  • ¥ 69.0元
  • 市场价:69.0元
  • ¥ 69.0元
  • 市场价:69.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: