Laravel 从 4.1 升级到 4.2 后控制器路由中断
Laravel controller routing broken after upgrading from 4.1 to 4.2
我有一个 laravel 项目,它在 laravel 4.1.31 上运行得很好,现在我的挑战是将该项目迁移到更高版本,比如 5.3。我开始按照 Laravel 在
下面的这个 link 上提供的升级指南进行操作
https://laravel.com/docs/5.3/upgrade#upgrade-4.2
我将 composer.json 上的 laravel 版本更改为 4.2.*,如下所示
我的composer.json文件
{
"require": {
"classpreloader/classpreloader": "1.0.2",
"d11wtq/boris":"1.0.8",
"filp/whoops":"1.0.10",
"ircmaxell/password-compat":"1.0.4",
"jeremeamia/SuperClosure":"1.0.2",
"laravel/framework":"4.2.*",
"monolog/monolog":"1.15.0",
"nesbot/carbon":"1.17.0",
"nikic/php-parser":"v0.9.5",
"patchwork/utf8":"v1.1.30",
"phpseclib/phpseclib":"0.3.10",
"predis/predis":"v0.8.7",
"psr/log":"1.0.0",
"spipu/html2pdf":"4.5.0",
"stack/builder":"1.0.3",
"swiftmailer/swiftmailer":"5.4.1",
"symfony/browser-kit":"2.4.10",
"symfony/console":"2.4.10",
"symfony/css-selector":"2.4.10",
"symfony/debug":"2.4.10",
"symfony/dom-crawler":"2.4.10",
"symfony/event-dispatcher":"2.7.3",
"symfony/filesystem":"2.7.3",
"symfony/finder":"2.4.10",
"symfony/http-foundation":"2.4.10",
"symfony/http-kernel":"2.4.10",
"symfony/process":"2.4.10",
"symfony/routing":"2.4.10",
"symfony/security-core":"2.4.10",
"symfony/translation":"2.4.10",
"tappleby/laravel-auth-token":"0.3.4",
"tecnickcom/tcpdf":"6.2.12",
"way/generators": "2.*"
},
"autoload": {
"files": [
"app/libraries/DashboardInit.php",
"app/libraries/MailSmsHandler.php",
"app/libraries/Twilio.php",
"app/libraries/class.phpmailer.php",
"app/libraries/class.smtp.php",
"app/libraries/php-excel.php"
],
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds"
]
},
"repositories": {
"packagist": { "url": "https://packagist.org", "type": "composer" }
}
}
成功 composer 更新后 我按照文档添加了新的加密默认值到指定的 app/config/app.php 文件。接下来的步骤不适用于我的情况,所以我跳过了它们。
带着所有的兴奋,我 运行 composer dump-autoload 接下来我也 运行 php artisan dump-autoload 一次又一次没有失败:) :)
最后鼓起勇气用我的项目 url 打开了 chrome :( 它加载了一个我起初不喜欢的页面,一个 Whoops 错误页面说
Symfony\Component\Debug\Exception\FatalErrorException (E_UNKNOWN)
它没有提供太多关于错误的信息。我尝试使用此代码调试我的路由文件。
Route::get('/login', function(){
$environment = App::environment();
echo $d = class_exists('DashboardController');
$d = new DashboardController();
$c = get_declared_classes();
sort($c);
dd($c);
});
通过这个实验,我发现应用程序没有加载 DashboardController 或与此相关的任何其他控制器。我已经尝试了很多关于 composer 和 artisan 缓存清除、优化的事情,但到目前为止运气不好,导致我 post 这个问题。
很高兴接受大家提供的所有帮助:)
用静态文件详细信息更新我的 composer.json 解决了我的问题应用程序被破坏了,因为这些自动加载文件 类 丢失了,这些文件用于在自动加载 [=18] 时实例化其他控制器文件=].
感谢您的宝贵时间。很抱歉因为这个愚蠢的问题而毁了你的时间。
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"tappleby/laravel-auth-token": "0.3.*",
"spipu/html2pdf": "~4.5"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/libraries",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"files": [
"app/libraries/DashboardInit.php",
"app/libraries/MailSmsHandler.php",
"app/libraries/Twilio.php",
"app/libraries/class.phpmailer.php",
"app/libraries/class.smtp.php",
"app/libraries/php-excel.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
我有一个 laravel 项目,它在 laravel 4.1.31 上运行得很好,现在我的挑战是将该项目迁移到更高版本,比如 5.3。我开始按照 Laravel 在
下面的这个 link 上提供的升级指南进行操作https://laravel.com/docs/5.3/upgrade#upgrade-4.2
我将 composer.json 上的 laravel 版本更改为 4.2.*,如下所示
我的composer.json文件
{
"require": {
"classpreloader/classpreloader": "1.0.2",
"d11wtq/boris":"1.0.8",
"filp/whoops":"1.0.10",
"ircmaxell/password-compat":"1.0.4",
"jeremeamia/SuperClosure":"1.0.2",
"laravel/framework":"4.2.*",
"monolog/monolog":"1.15.0",
"nesbot/carbon":"1.17.0",
"nikic/php-parser":"v0.9.5",
"patchwork/utf8":"v1.1.30",
"phpseclib/phpseclib":"0.3.10",
"predis/predis":"v0.8.7",
"psr/log":"1.0.0",
"spipu/html2pdf":"4.5.0",
"stack/builder":"1.0.3",
"swiftmailer/swiftmailer":"5.4.1",
"symfony/browser-kit":"2.4.10",
"symfony/console":"2.4.10",
"symfony/css-selector":"2.4.10",
"symfony/debug":"2.4.10",
"symfony/dom-crawler":"2.4.10",
"symfony/event-dispatcher":"2.7.3",
"symfony/filesystem":"2.7.3",
"symfony/finder":"2.4.10",
"symfony/http-foundation":"2.4.10",
"symfony/http-kernel":"2.4.10",
"symfony/process":"2.4.10",
"symfony/routing":"2.4.10",
"symfony/security-core":"2.4.10",
"symfony/translation":"2.4.10",
"tappleby/laravel-auth-token":"0.3.4",
"tecnickcom/tcpdf":"6.2.12",
"way/generators": "2.*"
},
"autoload": {
"files": [
"app/libraries/DashboardInit.php",
"app/libraries/MailSmsHandler.php",
"app/libraries/Twilio.php",
"app/libraries/class.phpmailer.php",
"app/libraries/class.smtp.php",
"app/libraries/php-excel.php"
],
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds"
]
},
"repositories": {
"packagist": { "url": "https://packagist.org", "type": "composer" }
}
}
成功 composer 更新后 我按照文档添加了新的加密默认值到指定的 app/config/app.php 文件。接下来的步骤不适用于我的情况,所以我跳过了它们。
带着所有的兴奋,我 运行 composer dump-autoload 接下来我也 运行 php artisan dump-autoload 一次又一次没有失败:) :)
最后鼓起勇气用我的项目 url 打开了 chrome :( 它加载了一个我起初不喜欢的页面,一个 Whoops 错误页面说
Symfony\Component\Debug\Exception\FatalErrorException (E_UNKNOWN)
它没有提供太多关于错误的信息。我尝试使用此代码调试我的路由文件。
Route::get('/login', function(){
$environment = App::environment();
echo $d = class_exists('DashboardController');
$d = new DashboardController();
$c = get_declared_classes();
sort($c);
dd($c);
});
通过这个实验,我发现应用程序没有加载 DashboardController 或与此相关的任何其他控制器。我已经尝试了很多关于 composer 和 artisan 缓存清除、优化的事情,但到目前为止运气不好,导致我 post 这个问题。
很高兴接受大家提供的所有帮助:)
用静态文件详细信息更新我的 composer.json 解决了我的问题应用程序被破坏了,因为这些自动加载文件 类 丢失了,这些文件用于在自动加载 [=18] 时实例化其他控制器文件=].
感谢您的宝贵时间。很抱歉因为这个愚蠢的问题而毁了你的时间。
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*",
"tappleby/laravel-auth-token": "0.3.*",
"spipu/html2pdf": "~4.5"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/libraries",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
],
"files": [
"app/libraries/DashboardInit.php",
"app/libraries/MailSmsHandler.php",
"app/libraries/Twilio.php",
"app/libraries/class.phpmailer.php",
"app/libraries/class.smtp.php",
"app/libraries/php-excel.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}