Laravel 我如何按价格订购产品
我如何从拉雷维尔的路线按价格订购产品? 如何将其标记到路线的终点? 这是溃败 路由::获取'shop/{category_url}?sort=ASC','SortController@sortByASC';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
你不需要在路由中添加它,你只需要将它传递到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>