我需要在单个控制器中传递多条路线。
我有关于我们的 和与我们联系的部分视图都从数据库中检索出来,因此我想通过footer
访问它们。当您从footer
单击它时,它应该链接到关于我们或联系我们页面。
预先感谢您的任何建议,我将不胜感激。
这里是控制器,路线,视图
控制器
class MainController extends Controller
{
public function index()
{
$categories = Category:: All();
$footers = Footer::with('subfooters')->get();
return view('combine.combined', compact('categories', 'footers'));
}
public function foot(Request $request, $id)
{
$categories = Category:: All();
$footers = Footer::with('subfooters')
->where('id', '=', $id)
->get();
return view('combine.combined', compact('footers', 'categories'));
}
}
路线
Route::get('/', 'MainController@foot')->name('pages.index');
Route::get('aboutus/{id}', 'MainController@foot')->name('combine.combined');
Route::get('contactus/{id}', 'MainController@foot')->name('combine.combined');
局部页脚视图
@if($subfooter->id == 1)
<a href="{{ route('combine.combined', ['id' => $subfooter->id])}}">{{$subfooter->name}}</a>
@endif
组合式Vievs
@extends('layouts.master')
@section('header')
@include('partials.header')
@stop
@section('content')
@include('pages.index')
@include('pages.aboutus')
@stop
@section('footer')
@include('partials.footer')
@stop
项目结构
.Root
..Resource
...View
....Combine
.....combined.blade.php
....Pages
.....contactus.blade.php
.....aboutus.blade.php
....Partials
.....footer.blade.php``
答案 0 :(得分:1)
如果我对您的理解正确,那么您希望能够在一个控制器中具有多个路由,那么您必须在控制器中具有多个功能。
Route::get('/whatever', 'ControllerName@functionInController');
function functionInController() {
//Will be called on /whatever
}
本质上,控制器中的@选择控制器中的哪个功能,这样您就可以与我们联系或联系其他人了。
答案 1 :(得分:0)
将多个路由指向同一控制器不是您正确预期的问题。问题在这里:
public function foot(Request $request, $id)
将此更改为
public function foot($id, Request $request)