【问题标题】:List a specific item and display values Laravel列出特定项目并显示值 Laravel
【发布时间】:2020-03-03 10:16:43
【问题描述】:

我想问一下如何改进下面的代码。我从数据库中提取汽车的品牌,然后将它们写入索引模板。如果用户点击特定品牌,则仅显示该品牌的汽车。我想使用变量或循环来改进代码,并且我需要帮助,因此我附上了我已经编写的至少一个最小的工作示例。

汽车控制器

public function index()
    {
        $cars = Car::latest()->get();
        $carsgroup = Car::whereNotNull('znacka')->groupBy('znacka')->orderBy('znacka', 'ASC')->get();

        return view('cars.index')
            ->with('cars', $cars)
            ->with('carsgroup', $carsgroup);

        }

public function renault()
    {
        $cars = Car::select()->where('znacka', 'Renault')->get();
        $carsgroup = Car::whereNotNull('znacka')->groupBy('znacka')->orderBy('znacka', 'ASC')->get();

        return view('cars.index')
            ->with('cars', $cars)
            ->with('carsgroup', $carsgroup);
    }

index.blade.php

<div class="list-group mb-5">
         <a href="{{url('cars')}}" class="list-group-item">Vše</a>
            @foreach($carsgroup as $group)
               <a href="{{str_replace('S','Š',ucfirst(strtolower($group->znacka))) }}" class="list-group-item">{{ $group->znacka }}</a>
            @endforeach
         </div>

路线

Route::get('Renault', 'CarController@renault');

【问题讨论】:

    标签: php laravel controller routes cycle


    【解决方案1】:

    在您的routes/web.php 中,您可以像这样添加additional parameter。如果你想要另一个 url 结构,你可能需要稍微调整一下:

    Route::get('cars/{brand}', 'CarController@carsbybrand');
    

    这个parameter可以在你的controller中这样访问:

    public function carsbybrand( $brand )
    {
        $cars = Car::select()->where('znacka', $brand)->get();
        $carsgroup = Car::whereNotNull('znacka')->groupBy('znacka')->orderBy('znacka', 'ASC')->get();
    
        return view('cars.index')
            ->with('cars', $cars)
            ->with('carsgroup', $carsgroup);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-07
      • 2013-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      相关资源
      最近更新 更多