我在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>
答案 0 :(得分:3)
使用find()
时,它将仅返回1个注册表。因此,order by无效。
如果$id
存在于多于1行中,那么您应该使用where
和get()
$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'));
});