首页 文章

如何从Laravel 5.6中的控制器获取数据副别名称?

提问于
浏览
0

使用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

现在categorydata显示超链接如下,
汽车
面包车

现在我需要点击上面的categoryname,显示与 vehicles 表格中的categoryname相关的数据 . 以下控制器正在为汽车类别手动工作

$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);

但是当点击上面的分类同名时,我无法找到如何在控制器中自动设置每个类别名称数据?你能给我一些解决方案吗?

1 回答

  • 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');
    

    重要的是将路线param {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);
    }
    

    和presto,您现在通过 categoryname 过滤查询

    如果那不是您所需要的,请重新提出您的问题 .

相关问题