我用laravel在部署的时候,需要优化路由加载,于是,执行命令:
php artisan route:cache
结果报了如下错误:
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”成功!