如何按照此代码按价格订购laravel高到低至低的产品 - 低到高产品?我得到了全部用于默认演示文稿,但我想添加2个链接来制作Quesy String默认订购-DESC或ASC这是顺序的代码:模型控制器HTML:
static public function getProducts($url_category, &$data) {
$data['products'] = [];
if ($category = Categorie::where('url', '=', $url_category)->first()) {
$category = $category->toArray();
$data['title'] = $data['title'] . $category['title'];
$data['url_category'] = $url_category;
if ($products = Categorie::find($category['id'])->products) {
$data['products'] = $products->toArray();
}
}
}
function __construct() {
parent::__construct();
$this->middleware('adminAuth');
}
public function index() {
self::$data['products'] = Product::all()->toArray();
return view('cms.products', self::$data);
}
public function create() {
self::$data['categories'] = Categorie::all()->toArray();
return view('cms.add_product', self::$data);
}
public function store(ProductRequest $request) {
Product::save_new($request);
return redirect('cms/products');
}
public function show($id) {
self::$data['product_id'] = $id;
return view('cms.delete_product', self::$data);
}
public function edit($id) {
self::$data['categories'] = Categorie::all()->toArray();
self::$data['product'] = Product::find($id)->toArray();
return view('cms.edit_product', self::$data);
}
public function update(ProductRequest $request, $id) {
Product::update_product($request, $id);
return redirect('cms/products');
}
public function destroy($id) {
Product::destroy($id);
Session::flash('sm', $request['title'] . ' has been deleted');
return redirect('cms/products');
}
@if($products)
<a href='{{url('shop/' . $url_category . '?order=high')}}' class='btn btn-link'>From High to Low</a>|
<a href='{{url('shop/' . $url_category . '?order=low')}}' class='btn btn-link' style='color:purple;'>From Low to High</a>
<div class="row">
@foreach($products as $row)
<div class="col-md-6 col-sm-6">
<h3>{{ $row['title'] }}</h3>
<p><a href="{{url('shop/'. $url_category . '/' . $row['url'])}}"><img alt="{{ $row['title'] }}" border="0" width="200" height="200" src="{{ asset('images/' . $row['image']) }}"></a></p>
<p>{!! $row['article'] !!}</p>
<p><strong>Price on site: </strong>{{ $row['price'] }}$</p>
<p>
<a href="{{url('shop/'. $url_category . '/' . $row['url'])}}" class="btn btn-warning">View Product Details</a>
<input @if( Cart::get($row['id'] )) disabled="disabled" @endif data-id="{{ $row['id'] }}" type="button" class="add-to-cart-btn btn btn-success" value="+ Add To Cart"/>
</p>
</div>
@endforeach
</div>
@else
<div class="row">
<div class="col-md-12">
<p><ans>No Products For This Category...</ans></p>
</div>
</div>
@endif
您可以在控制器中使用 usort((函数:
$data['products'] = $products->toArray();
if (request()->has('order') {
usort($data['products'], function($a, $b) {
return (request('order') == 'high') ? $b['price'] -
$a['price'] : $a['price'] - $b['price'];
});
}
您可能需要考虑不要将$products
施加到数组中,而是将其保留为集合。这样,您可以使用Laravel的sortBy()
方法以清晰的方式对集合进行分类。
// $order can be 'asc' or 'desc', which you determine in your controller
@foreach ($products->sortBy('column', $order) as $row)
请参见文档:collections/sortby((