Php 按价格订购产品

Php 按价格订购产品,php,laravel,laravel-5,laravel-5.2,Php,Laravel,Laravel 5,Laravel 5.2,我想按价格订购产品,一个链接从低到高,另一个链接从高到低, 当我点击视图中的链接时,它不会改变产品的顺序。 这是控制器中的功能: public function products($category_url, Request $request){ Product::getProducts($category_url, self:: $data); if ($category1 = Categorie::where('url', '=', $category_url)->fi

我想按价格订购产品,一个链接从低到高,另一个链接从高到低, 当我点击视图中的链接时,它不会改变产品的顺序。 这是控制器中的功能:

public function products($category_url, Request $request){
    Product::getProducts($category_url, self:: $data);
    if ($category1 = Categorie::where('url', '=', $category_url)->first()) {
       $sort = $request->get('sort', 'asc');
       $products = Product::where('categorie_id', $category1->getAttribute('id'))->orderBy('price', $sort)->get();

        return view('content.products', self::$data , compact('products', 'sort')); 
    }
}
这是路线:

   Route::get('shop/{category_url}?sort=DESC','ShopController@products');
   Route::get('shop/{category_url}?sort=ASC','ShopController@products');
tihs的观点是:

   <a href="{{ url('shop/'.$category['url'])}}?sort=DESC" style="color:black"> High to low</a> |
   <a href="{{ url('shop/'.$category['url'])}}?sort=ASC" style="color:black">Low to high</a>
|

只要让路线像

Route::get('shop/{category_url}','ShopController@products');
在类中定义sort的默认值

static $sort= 'asc';
获取带有排序的产品的示例代码

class ShopController extends Controller{

    static $sort = 'asc';

public function products($category_url, Request $request){

    // Your Code

        //check the value you are getting
        //echo $request->input('sort');
        $sort = !is_null($request->input('sort')) ? $request->input('sort') : static::$sort;
        $products = Product::where('categorie_id', $category1->getAttribute('id'))->orderBy('price', $sort)->get();

  // Your Code
  }


// Your Code
...
}

您没有得到$sort值

做:


我写了你所说的:公共函数产品($category\u url,Request$Request){Product::getProducts($category\u url,self::$data);if($category1=Categorie::where('url','=',$category\u url)->first(){echo$Request->input('sort');$sort=!is_null($Request->input('sort')?$Request->input('sort')):static::$sort;$products=Product::where('categorie_id',$category1->getAttribute('id'))->orderBy('price',$sort)->get();return view('content.products',self:$data,compact('products','sort');它回显了正确的值,但排序仍然不起作用只需检查这一个是否起作用和
产品::orderBy('price','ASC')->get();
用于测试。路由应仅为
route::get('shop/{category\u url}','ShopController@products“);
这是对OP的回答吗?在当前的版本中,你的“答案”似乎更适合作为评论而不是实际答案。
dd($sort);