我正在努力将现有的Laravel 3应用程序迁移到Laravel 4.1,并且路由正在踢我的屁股。这是我遇到的问题 - 在旧的应用程序中,我们经常在routes文件中使用Route :: controller()。当我将这些条目带到新应用程序时,它们似乎有效,但它们会使作曲家变得讨厌。
例如,我有这条路线:
Route::controller('templates', 'AdminTemplatesController');
这是一条路线。但是当我运行composer update时,我收到了这个错误:
{"error":{"type":"ReflectionException","message":"Class AdminTemplatesController does not exist","file":"\/vendor\/laravel\/framework\/src\/Illuminate\/Routing\/ControllerInspector.php","line":28}}
我尝试剥离并使用Artisan创建一个全新的控制器 - 同样的测试,同样失败。
任何想法我做错了什么?
答案 0 :(得分:0)
在Laravel 4中,您使用" Route :: resource()"。所以你的例子是Route :: resource(' templates',' AdminTemplatesController');
答案 1 :(得分:0)
看起来你必须分步进行:
1)禁用所有路线
2)执行composer update
并使流程通过,您不需要路线来执行此操作
3)重新启用控制器路由并修复Laravel未找到的问题,可能是:
在所有这些情况下,您必须确保您的控制器位于该文件夹的任何文件中:
vendor/composer
例如,如果您在composer.json的autoload->类别图中有controllers文件夹,则该文件将为:
vendor/composer/autoload_classmap.php
请记住,每次更改composer.json时,都必须
composer dumpautoload
因此它会重新创建这些文件。
编辑:
关于你的评论,当我的文件在命令行中打印时,我遇到了类似的问题,因为我曾经发生过这样的事情:
<?
而不是
<?php
这对Laravel来说是不同的。