Routing 带参数的Laravel 4命名空间控制器路由
所以我不知道这是否是因为我的项目是命名空间的,但这是我的路线中的内容:Routing 带参数的Laravel 4命名空间控制器路由,routing,namespaces,laravel-4,Routing,Namespaces,Laravel 4,所以我不知道这是否是因为我的项目是命名空间的,但这是我的路线中的内容: Route::controller( 'videos/{type?}/{id?}', '\App\Controllers\VideoController@getIndex'); Route::get( 'videos', '\App\Controllers\VideoController' ); /** Home/Fallback Controller **/ Route::controller('/', '\App\Co
Route::controller( 'videos/{type?}/{id?}', '\App\Controllers\VideoController@getIndex');
Route::get( 'videos', '\App\Controllers\VideoController' );
/** Home/Fallback Controller **/
Route::controller('/', '\App\Controllers\HomeController');
这是我将要访问的url:
mysite.com/videos/supplier/1
这是我的视频控制器:
<?php
namespace App\Controllers;
use \View;
use \Asset;
use \App\Models\Video;
class VideoController extends BaseController {
public function getIndex($filterType = null, $filterId = null)
{
Asset::addStyle('css/magnific-popup.css');
Asset::addScript('js/magnific-popup.js');
Asset::addScript('js/magnific-video.js');
$video = new Video();
$this->data['videoCategories'] = $video->getCategories();
$this->data['videoSuppliers'] = $video->getSuppliers();
if( $filterType == 'category' )
{
// grab videos by category id
$this->data['videos'] = $video->getByCategory( $filterId );
}
elseif( $filterType == 'supplier' )
{
// grab videos by supplier id
$this->data['videos'] = $video->getByCategory( $filterId );
}
else
{
// get all videos
$this->data['videos'] = $video->getAll();
}
$this->data['currentId'] = $filterId;
$this->data['currentType'] = $filterType;
$this->layout->content = View::make('videos.index', $this->data);
}
}
在路由文件中,尝试更改: {type?}到{any}和{id?}到{num} 为我工作 或者如果您想要对{any}和{num}进行更深入的筛选。 请理解“路线参数”部分的文档(路线::模式) 您可以这样做:
// remove your @getIndex and change {type?} to {any}, {id?} to {num}
Route::controller( 'videos/{any}/{num}', '\App\Controllers\VideoController');
您正在使用操作创建路由
Route::controller( 'videos/{type?}/{id?}', '\App\Controllers\VideoController@getIndex');
你应该:
Route::controller( 'videos/{type?}/{id?}', '\App\Controllers\VideoController');
对不起,我的英语不好
确保您的子文件夹名称以app/controllers中的lovercase字母开头
不正确
应用程序/控制器/子文件夹
正确
app/controllers/subfolder否当我这样做时,它仍然会抛出错误。。您的项目是否有名称空间?我觉得这就是把事情搞砸的原因,虽然我不知道怎么可能……啊,我以为你填错了路由::控制器,你不应该在路由::控制器中写@getIndex。。我不小心切换了这两个,而底部的那个应该是控制器,而不是获取。。非常感谢。我觉得很愚蠢=/你们想编辑你们的答案,把它包括进去吗?我想文件夹的名字是无效的