首页 > 解决方案 > Laravel 视图中的多种功能

问题描述

我需要帮助,我是 laravel 的新手,我想查询只能从这样的表中获取年份

public function index() {
    $items = Items::distinct()->orderBy('date','desc')->select(DB::raw('YEAR(`date`) as date'))->get();
    $itemDet = Items::where('date', $items->date);
}

然后我想用这个函数根据上面的年份显示表中的其他值

public function itemDetail($year) {
    $itemDet = Items::where('YEAR(`date`)', $year);

    return $itemDet;
}

但是我不知道如何在视图中调用它,我只知道如何在视图中调用第一个函数,并且我不知道如何将值年从第一个函数作为参数传递给第二个函数。

2018
- item2018
- item2018
- item2018
2017
- item2017
2016
-item2016
-item2016

对不起我的语法不好,谢谢!

标签: laravel

解决方案


您可以立即在索引函数中获得该输出,而无需将其传递给第二个函数,这是一种方法。

public function index() {

    $arr_container = []; //create array container

    $items = Items::distinct()->orderBy('date','desc')->select(DB::raw('YEAR(`date`) as date'))->get();
    foreach($items as $val){
       $itemDet = Items::select(DB::raw('item'))->where('YEAR(`date`)', $val->year)->get();
       if($itemDet->count()>0){
        $arr_container[$val->year][] = $itemDet[0]->item;
       }
    }

    return view('view')->with('years',$arr_container);
}

当你调用 {{$years}} 时,你应该得到这个输出。

2018
- item2018
- item2018
- item2018
2017
- item2017
2016
-item2016
-item2016

推荐阅读