[英]Laravel controller routing broken after upgrading from 4.1 to 4.2
我有一個laravel項目,可以在laravel 4.1.31上很好地運行,現在我面臨的挑戰是將該項目遷移到更高版本,例如5.3。 我開始在下面的此鏈接上遵循Laravel提供的升級指南
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之后,我按照文檔進行操作,並將新的Encryption Defaults添加到指定的app / config / app.php文件中。 下一步不適用於我的情況,因此我跳過了它們。
帶着所有的興奮,我接下來跑了作曲家dump-autoload,之后我又一次又一次地跑了php artisan dump-autoload :) :) :)
最后以勇氣用我的項目URL打開了鑲邊:(它加載了一個我最初不喜歡的頁面,Whoops錯誤頁面說
Symfony \\組件\\調試\\異常\\ 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.json解決了我的問題,該應用程序損壞了,因為缺少了這些autload-files類,這些類用於在自動加載類時實例化其他控制器文件。
感謝您的時間。 由於這個愚蠢的問題,很抱歉破壞您的時間。
{
"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"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.