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-autoloadcomposer update 尝试使用“/login”。你有观点吗? 谢谢,但我已经尝试执行这些命令,但错误仍然存​​在... 我找到的解决方案是删除文件中的路由,执行 php artisan route:clear 然后恢复文件中的路由。我也执行了这个命令 php artisan route:list 现在页面工作正常......我不知道为什么/发生了什么......

以上是关于Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5插入带有外键错误的行

带有消息“未定义变量”的 Laravel Tinker ErrorException

Laravel 和 Postgresql 带有消息“找不到驱动程序”错误的 PDOException

Laravel 错误未捕获的异常 'ReflectionException' 并带有消息'Class App\Http\Kernel 不存在'

带有 laravel sanctum 的 Nuxt 收到“未验证”消息

Laravel 工匠使用带有空格的消息参数给出太多参数,预期参数“命令”