Laravel 我如何按价格订购产品

Laravel 我如何按价格订购产品,laravel,laravel-5,Laravel,Laravel 5,我如何从拉雷维尔的路线按价格订购产品? 如何将其标记到路线的终点? 这是溃败 路由::获取'shop/{category_url}?sort=ASC','SortController@sortByASC'; 你不需要在路由中添加它,你只需要将它传递到url,例如 Route::get('shop/{category}', 'SomeController@someFunction'); 现在在控制器功能中: public function someFunction($category, Requ

我如何从拉雷维尔的路线按价格订购产品? 如何将其标记到路线的终点? 这是溃败

路由::获取'shop/{category_url}?sort=ASC','SortController@sortByASC';


你不需要在路由中添加它,你只需要将它传递到url,例如

Route::get('shop/{category}', 'SomeController@someFunction');
现在在控制器功能中:

public function someFunction($category, Request $request)
{

     $query = Model::query();
     if($request->sort)
      {
        $query = $query->orderBy('price', $request->sort);
      }
   $query = $query->get();
}
从您的视图构建此url

<a href="/shop/{{$category}}?sort=ASC">Sort product ascending</a>
让我们假设您的链接看起来像/车间/类别?分类=ASC。您可以在控制器中获取get Parameters的值:

class SortController extends MainController{
    public function sortByASC($category, Request $request)
    {
        if ($category1 = Categorie::where('url', '=', $category)->first()) {
            $sort = $request->get('sort', 'asc');
            $products = Product::where('categorie_id', $category1->getAttribute('id'))->orderBy('price', $sort)->get();
            $sort = $sort == 'asc' ? 'desc' : 'asc'; // to use in sort link
            return view('content.sort', compact('products', 'sort'));
        }
    }
}
在content/sort.blade.php文件中:

<!-- When the link is clicked orders are sorted ascending by default. When it is clicked again after page reload orders are sorted descending and it goes so on -->
<a href=".../shop/{{category_url}}?sort={{$sort}}">Sort {{$sort === 'asc' ? 'ascending' : 'descending'}}</a>

谢谢,我希望他们能够从分类页面点击从低到高,从高到低,然后产品的顺序会改变,现在它自动将它们从低到高排列是的,如果你想这样改变它,它会起作用,但是,如果您以表格格式显示数据,那么使用dataTables您能告诉我如何更改函数以同时适用于>ASC和DESC吗?我试图编写链接u在视图中说的:它显示htmlspecialchars期望参数1是字符串,数组给定视图:确保$category是字符串而不是数组。你能告诉我如何在我的控制器中组合它吗?类SortController扩展了MainController{公共函数SortBySC$category,请求$Request{如果$category1=category::where'url','=',$category->first{$sort=$request->get'sort',asc';$products=Product::where'categie_id',$category1->getAttribute'id'->orderBy'price',$sort->get;返回视图'content.sort'->带'products',$products;}它可以工作,但在页面sort.blade打开后,我想再次单击low to high或high to low,它是未定义的变量:category View:C:\xampp5\htdocs\myshop\resources\views\content\sort.blade.php在我单击后,它是使用未定义的常量category\u url-assumed“category\u url”我以category\u url为例。category\u url的值取决于应用程序的逻辑。只需将category\u url替换为要检索的category的url。我将其更改为:category url是动态的。现在它是:未定义变量:排序视图:
<!-- When the link is clicked orders are sorted ascending by default. When it is clicked again after page reload orders are sorted descending and it goes so on -->
<a href=".../shop/{{category_url}}?sort={{$sort}}">Sort {{$sort === 'asc' ? 'ascending' : 'descending'}}</a>