Laravel视图中的多功能

时间:2018-10-05 07:36:32

标签: 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;
}

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

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

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

2 个答案:

答案 0 :(得分:0)

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

    //return $itemDet; change it to 
    return view('yourViewPath',compact('itemDet'));
}

在视图中,您可以通过这种方式访问​​

{{ $itemDet }}

答案 1 :(得分:0)

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

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