Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”
Posted
技术标签:
【中文标题】Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”【英文标题】:Laravel 5 - exception 'LogicException' with message 'Unable to prepare route 【发布时间】:2017-04-12 16:12:15 【问题描述】:我不知道为什么,但是当我尝试进入登录页面时,有时会收到此错误。
异常“LogicException”,消息“无法准备路由” [api/user] 用于序列化。使用闭包。'
这是我在日志中发现的:
exception 'LogicException' with message 'Unable to prepare route [api/user] for serialization. Uses Closure.' in /Applications/MAMP/htdocs/Tog/bootstrap/cache/compiled.php:8831
Stack trace:
#0 /Applications/MAMP/htdocs/Tog/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteCacheCommand.php(61): Illuminate\Routing\Route->prepareForSerialization()
#1 [internal function]: Illuminate\Foundation\Console\RouteCacheCommand->fire()
#2 /Applications/MAMP/htdocs/Tog/bootstrap/cache/compiled.php(1271): call_user_func_array(Array, Array)
#3 /Applications/MAMP/htdocs/Tog/vendor/laravel/framework/src/Illuminate/Console/Command.php(169): Illuminate\Container\Container->call(Array)
#4 /Applications/MAMP/htdocs/Tog/vendor/symfony/console/Command/Command.php(254): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#5 /Applications/MAMP/htdocs/Tog/vendor/laravel/framework/src/Illuminate/Console/Command.php(155): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#6 /Applications/MAMP/htdocs/Tog/vendor/symfony/console/Application.php(820): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#7 /Applications/MAMP/htdocs/Tog/vendor/symfony/console/Application.php(187): Symfony\Component\Console\Application->doRunCommand(Object(Illuminate\Foundation\Console\RouteCacheCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#8 /Applications/MAMP/htdocs/Tog/vendor/symfony/console/Application.php(118): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#9 /Applications/MAMP/htdocs/Tog/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php(121): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#10 /Applications/MAMP/htdocs/Tog/artisan(36): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#11 main
您能否向我解释发生了什么事以及如何解决?
这是路线:
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| This file is where you may define all of the routes that are handled
| by your application. Just tell Laravel the URIs it should respond
| to using a Closure or controller method. Build something great!
|
*/
Route::get('/', function ()
return view('welcome');
);
Route::get('admin', function ()
return view('admin_template');
);
// route to show the login form
Route::get('login', array('uses' => 'HomeController@showLogin'));
// route to process the form
Route::post('login', array('uses' => 'HomeController@doLogin'));
谢谢:)
【问题讨论】:
用api/user
的路由显示你的routes.php
你能用它来编辑你的问题吗?很难在评论中阅读。
顺便说一句,我看到你正在做一个登录表单和类似的东西。我建议你简单地运行php artisan make:auth
,然后为你创建这个+更多有用的东西。
【参考方案1】:
去掉数组,改用这个:
// route to show the login form
Route::get('login', 'HomeController@showLogin');
// route to process the form
Route::post('login', 'HomeController@doLogin');
【讨论】:
不幸的是,我收到了同样的错误...当我尝试进入登录页面时,我看到此错误消息“未在此服务器上找到请求的 URL /login。” 不确定为什么会出现该错误,但您可以尝试composer dump-autoload
和composer update
尝试使用“/login”。你有观点吗?
谢谢,但我已经尝试执行这些命令,但错误仍然存在...
我找到的解决方案是删除文件中的路由,执行 php artisan route:clear 然后恢复文件中的路由。我也执行了这个命令 php artisan route:list 现在页面工作正常......我不知道为什么/发生了什么......以上是关于Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”的主要内容,如果未能解决你的问题,请参考以下文章
带有消息“未定义变量”的 Laravel Tinker ErrorException
Laravel 和 Postgresql 带有消息“找不到驱动程序”错误的 PDOException
Laravel 错误未捕获的异常 'ReflectionException' 并带有消息'Class App\Http\Kernel 不存在'