Php 未找到Laravel控制器方法
正在尝试运行以下Laravel 4.1路由:Php 未找到Laravel控制器方法,php,laravel-4,Php,Laravel 4,正在尝试运行以下Laravel 4.1路由:http://myserver.dev/admin/import-items/1 当我这样做时,我会得到以下错误: Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException Controller method not found. 以下是我的路线: Route::group(array('prefix' => 'admin', 'before' => 'aut
http://myserver.dev/admin/import-items/1
当我这样做时,我会得到以下错误:
Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException
Controller method not found.
以下是我的路线:
Route::group(array('prefix' => 'admin', 'before' => 'auth'), function()
{
Route::get('items/import-items/{after?}', array('as' => 'importItems', 'uses' => 'ItemsController@importItems'));
Route::get('items/{id}/show', 'ItemsController@show');
Route::resource('items', 'ItemsController');
});
我可以查看Items控制器,方法importItems
非常明确:
class ItemsController extends \BaseController {
/**
* Item Model
* @var Item
*/
protected $item;
/**
* Inject the models.
* @param Item $item
*/
public function __construct(Item $item)
{
parent::__construct();
$this->item = $item;
}
/**
* Display a listing of items
*
* @return Response
*/
public function index($items = [])
{
$title = Lang::get('admin/items/title.manage_items');
if (empty($items))
$items = $this->item;
return View::make('admin/items/index', compact('items', 'title'));
}
/**
* Imports Items after specified date.
* @return array
**/
public function importItems($after = 7)
{
$results = Item::importItems($after);
return $results;
}
}
当我运行php artisan routes
时,该路由在列表中清楚地显示为可用:
GET|HEAD admin/items/import-items/{after?} | importItems | ItemsController@importItems
问题是,这段代码在我参与的另一个项目中运行得很好。在我复制了路线设置、控制器和模型之后,它决定不在这个新项目中工作。我觉得我错过了这里的一些关键步骤,因为我看不到代码中的任何差异
有什么想法吗?您使用了错误的url。此url:
http://myserver.dev/admin/import-items/1
应该是这个吗
http://myserver.dev/admin/items/import-items/1
或
Route::get('items/import-items/{after?}', array('as' => 'importItems', 'uses' => 'ItemsController@importItems'));
应该是
Route::get('import-items/{after?}', array('as' => 'importItems', 'uses' => 'ItemsController@importItems'));
…取决于您想要哪个url请发布
ItemsController
是否运行了composer dump autoload
?是的,运行了composer dump autoload
,但未修复。添加了要发布的ItemsController
。请尝试\ItemsController@show
@AmitGarg同样的结果。绝对令人惊讶。我所说的神奇,是指“掌心”。这一切归结为我在一个视图中嵌入的链接,在新代码中是错误的,在旧代码中是正确的。谢谢你抓到这个!!:)