我正在使用Laravel 5来构建一个网站,并且有一些页面,其内容将用Blade编写(例如,关于,条款和条件等)以及其他将从数据库(一般博客文章)中提取的页面。
我想编写一个控制器并运行一个开关盒来显示特定的视图。
e.g。
PagesController@showPage
:
public function showPage($page){
switch ($page) {
case 'about':
$view = 'frontend.about';
break;
case 'terms':
$view = 'frontend.terms';
break;
...
default:
$view = 'frontend.home'
break;
}
return view($view);
}
但是如何在Routes.php
中传递其他参数?
//Route to About page
Route::get('/about',['as'=>'about','uses'=>'PagesController@showPage']);
//Route to Terms
Route::get('/terms',['as'=>'terms','uses'=>'PagesController@showPage']);
类似的东西:
//Route to Terms
Route::get('/terms',['as'=>'terms','uses'=>'PagesController@showPage'])->with(['page'=>'terms']);
答案 0 :(得分:0)
在路线中传递变量非常容易。看看下面的代码。
Route::get('/terms/{page}',['as'=>'terms','uses'=>'PagesController@showPage']);
您可以在控制器操作中访问此值,如下例所示。
function showPage($page){
echo $page;
}
答案 1 :(得分:0)
使您的网页路由如下:
Route::('/pages/{slug}', 'PagesController@showPage') ;
每次创建路线时都要这样做:
route('/pages', ['slug' => 'about']);
从您的控制器获取slug:
function showPage($slug) {
switch($slug) :
//write your cases
}