使用laravel 5.6和mysql。我的表名称为vehicles
id name categoryname brandname model
1 juy car toyota 121
2 gty van nissan caravan
3 bgh car bmw 520d
4 hyu van ford max
5 nhj car toyota 121
6 gtr car toyota corolla
7 gtr van nissan caravan
我正在使用以下控制器功能来显示带有品牌名称和型号名称的类别名称
$buss = DB::table('vehicles')
->select('categoryname','brandname','modelname', DB::raw('count(*) as total'))
->orderBy('categoryname', 'asc')
->groupBy('modelname')
->get();
return view('vehicles.bus')->withBuss($buss);
并使用以下刀片文件显示数据
<?php $cat = ""; ?>
@foreach($vehicles->unique('modelname') as $vehicle)
@if($vehicle->categoryname != $cat )
<?php $cat = $vehicle->categoryname; ?>
{{$cat}}
<br><br>
@endif
<ul>
<li>{{$vehicle->brandname}}</li> <br>
</ul>
@endforeach
这显示如下数据,
汽车
丰田
121(2)
丰田
花冠(1)
宝马
520d(1)
货车
日产
carvan(1)
福特
最大(1)
但是现在我需要进行一些更改,这意味着首先要使用以下控制器功能来指定类别名称,
$names = Vehicle::groupBy('categoryname')->select('id', 'categoryname', \DB::raw('COUNT(*) as cnt'))->get();
和刀片文件
@foreach($names as $name)
<a href="{{ route('vehicles.brand') }}">{{$name->categoryname}}</a>
@endforeach
,现在类别数据显示为带有超链接,如下所示,
汽车
货车
现在,当我单击上面的类别名称时,需要显示vehicles
表中与类别名称相关的数据。以下控制器正在针对汽车类别手动工作
$car = DB::table('vehicles')
->select('categoryname','brandname','modelname', DB::raw('count(*) as total'))
->orderBy('categoryname', 'asc')
->groupBy('modelname')
->where('categoryname', 'car')
->get();
return view('vehicles.bus')->withCar($car);
但是当我单击上面的类别名称时,我找不到如何在控制器中自动设置每个类别名称数据的方法吗?你能给我一些解决方法吗?
答案 0 :(得分:1)
首先,这个问题不容易理解,您应该对其进行编辑并使问题更易于理解。
我了解到您需要显示在右上方链接中点击了categoryname
的车辆吗?
如果是这样,则必须像这样更改一些代码。
首先,您必须像这样将categoryname
添加到您的网址中
@foreach($names as $name)
<a href="{{ route('vehicles.brand',['cat' => $name->categoryname]) }}">{{$name->categoryname}}</a>
@endforeach
然后在您的路线中必须有类似的东西
Route::method('your/route/url/{cat}','YourController@yourMethod)->name('vehicle.brand');
重要的部分是将路径参数{cat}
添加到您的路径中,其余的取决于您。
然后在您的控制器中获得这样的参数
public function yourMethod(Request $request, $cat) {
//finally you add the $cat variable to your query like this
$car = DB::table('vehicles')
->select('categoryname','brandname','modelname', DB::raw('count(*) as total'))
->orderBy('categoryname', 'asc')
->groupBy('modelname')
->where('categoryname', $cat)
->get();
return view('vehicles.bus')->withCar($car);
}
然后,您现在可以通过categoryname
如果这不是您所需要的,请重新提出您的问题。