laravel - 是否可以使用单个路由通过控制器访问多个页面?
问题描述
我有多个页面需要通过数据库中的 id 访问它们,我发现很难在刀片模板中访问它们。我决定创建一个控制器来访问它们,所以可以这样做吗?
我的控制器:
public function index(Request $request,$id)
{
$categories = Category::with('subcategories')
->get();
return View::make(['index','pages.quote','pages.video','pages.music','pages.radio','pages.inspiration','pages.gospel','pages.image'], [
'categories'=>$categories
]);
}
路线:
Route::get('test','NewsletterController@test');
Route::get('newsletter','NewsletterController@create');
Route::post('newsletter','NewsletterController@store');
Route::get('/', 'MainController@index')->name('index');
Route::get('quote/{id}','HeaderController@index');
Route::get('video/{id}','HeaderController@index');
Route::get('radio/{id}','HeaderController@index');
Route::get('inspiration/{id}','HeaderController@index');
Route::get('gospel/{id}','HeaderController@index');
Route::get('image/{id}','HeaderController@index');
刀片视图:
<ul class="navbar-nav leftside mr-auto">
@foreach($categories as $category)
<li class="nav-item active">
@if($category->id == 2 )
<a class="nav-link" href="{{ route('index', ['id' => $category->id])}}">{{$category->name}} <span class="sr-only">(current)</span></a>
@endif</li>
</li>
@endforeach
</ul>
解决方案
我不知道你想用这个实现什么,但你可以这样做:
public function index(Request $request,$id){
$categories = Category::with('subcategories')->get();
if ($id == 3){ // example
$page = 'pages.quote';
}elseif($id == 4){ // example
$page = 'pages.video';
}else{
$page = 'index';
}
return View::make($page, ['categories'=>$categories]);
}
推荐阅读
- webpack - Windows 10 重新安装后,Nodemon 和 webpack-dev-server 热重载在 WSL 2 下不起作用
- javascript - 如何通过 Promise 链接访问数据(Node-fetch)
- html - Scrapy,Xpath,提取h3内容?
- sql - 如何找到从 SQL UPDATE 语句更改的单元格数?
- ruby-on-rails - 带有多个子生成器的 Ruby on Rails 自定义生成器
- python - 巨大的txt文件变成更小的文件
- pyspark - AWS Glue 与 RDS SQL Server
- javascript - 如何在Javascript中的嵌套元素中设置占位符属性
- java - 如何在 android studio 中为扫描图像创建文件路径并添加到 SQL 数据库?
- react-redux - redux-saga 无法从调度的动作中获取有效负载值