猿问

在 laravel 的搜索表单中从数据库获取结果的问题

我有搜索表单,可以通过特定条件(城市、价格、正交、属性类型等)列出属性/广告。当我尝试在表单中放置一些值以获取数据库中对应的项目时遇到问题,我得到了没有结果的空表。我有三张桌子。


properties (id, city, price, quadrature, property_type)


categories (id, category, priority)


category_property (id, property_id, category_id)

这种关系是多对多的,它有效,我检查过。这个类别表有默认值。在类别行中,它有报价、需求、购买、租赁、房屋、公寓,其中报价和需求优先级为 0,购买和租赁优先级为 1,房屋和公寓优先级为 2。在我的网址中,当我点击提交按钮时,它应该会得到一些东西像这样


project/search/offer/buy/house/Madrid/min_price=10000-max_price=15000/min_quadrature=20-max_quadrature=30

其中 offer、buy、house 是类别行中的那些值。我被困在那里如何解决这个问题,所以我可以显示适当的结果。任何帮助是极大的赞赏。


繁星淼淼
浏览 100回答 1
1回答

慕村9548890

请将您的search操作替换CategoryController为以下代码:public function search($propertyBidAsk, $propertyType, $propertyPayment, $city, $price, $quadrature, Request $request, Property $property){&nbsp; &nbsp; $category = $property->category;&nbsp; &nbsp; $property_obj = Property::query();&nbsp; &nbsp; if (!empty($request->city)) {&nbsp; &nbsp; &nbsp; &nbsp; $property_obj->where('city', 'LIKE', "%" . $request->city . "%");&nbsp; &nbsp; }&nbsp; &nbsp; if (!empty($request->min_price) && !empty($request->max_price)) {&nbsp; &nbsp; &nbsp; &nbsp; $property_obj->where('price', '>=', $request->min_price)->where('price', '<=', $request->max_price);&nbsp; &nbsp; }&nbsp; &nbsp; if (!empty($request->min_quadrature) && !empty($request->max_quadrature)) {&nbsp; &nbsp; &nbsp; &nbsp; $property_obj->where('quadrature', '>=', $request->min_quadrature)->where('price', '<=', $request->max_quadrature);&nbsp; &nbsp; }&nbsp; &nbsp; $results =&nbsp; $property_obj->get();&nbsp; &nbsp; return view('categories.search', compact('category', 'results'));}
随时随地看视频慕课网APP
我要回答