为什么我的PHP代码中的orderBy方法不起作用?

时间:2018-09-26 19:59:45

标签: php laravel

我在Laravel 5中编写了此PHP代码,orderBy无法正常工作。

Route::get('/products',function (){$products= DB::table('products')->get();
return view('products.index',compact('products'));});

Route::get('/products/{id}',function ($id){$product= DB::table('products')->find($id);
        return view('products.show',compact('product'));});

和index.blade.php代码是

 <div><a href={{"/products/".$product->id}}>{{$product->name}}</a></div>

和show.blade.php代码是:

 <h1>{{$product->name}}</h1>
 <p> {{$product->description}}</p>

1 个答案:

答案 0 :(得分:3)

使用find()时,它将仅返回1个注册表。因此,order by无效。

如果$id存在于多于1行中,那么您应该使用whereget()

$product= DB::table('products')->where('id','=',$id)->orderBy('name','desc')->get();

因此,如果您添加订单依据,它应该可以工作:

Route::get('/products',function (){
    $products= DB::table('products')->orderBy('name','desc')->get();
    return view('products.index',compact('products'));
});