大家好我是laravel的新手,我想问一个问题。这是我的本地网址
/laravel-master/public/
我做了一些路由。
Route::resource('news', 'NewsController');
Route::resource('events', 'EventsController');
Route::resource('products', 'ProductsController');
那是3条路线正常工作。但我不想用很多菜单重复我自己,所以我对代码进行了更改:
Route::get('{class}', function($class){
Route::controller($class,ucfirst($class).'Controller@index');
})->where('class',
'news|events|products|anotherclass');
我得到了这样的错误
ReflectionException 类 NewsController@index 不存在
实际上,NewsController
确实存在并且Index
方法确实存在:
class NewsController extends BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return View::make('page.news-event');
}
}
我想用控制器页面处理 url {pagename}-page 并获取 pagename 参数
Route::get('{pagename}-page', function($pagename){
Route::controller($pagename.'-page','PagesController@index');// where i can put the parameter page name?
});
class PagesController extends BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index($pagename='')
{
if($pagename=='about'){
// do something
}else if($pagename=='contact'){
// do something
}
return View::make('page.about');
}
}
php工匠路线:
| | GET /{class} | | Closure | | |
| | GET /{pagename}-page | | Closure | | |
| | GET / | | HomeController@index | | |
请帮忙。对不起,我的英语不好。