为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
繁星淼淼 2021-09-05 16:20:09
我有搜索表单,可以通过特定条件(城市、价格、正交、属性类型等)列出属性/广告。当我尝试在表单中放置一些值以获取数据库中对应的项目时遇到问题,我得到了没有结果的空表。我有三张桌子。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 是类别行中的那些值。我被困在那里如何解决这个问题,所以我可以显示适当的结果。任何帮助是极大的赞赏。
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

请将您的search操作替换CategoryController为以下代码:


public function search($propertyBidAsk, $propertyType, $propertyPayment, $city, $price, $quadrature, Request $request, Property $property)

{

    $category = $property->category;


    $property_obj = Property::query();

    if (!empty($request->city)) {

        $property_obj->where('city', 'LIKE', "%" . $request->city . "%");

    }


    if (!empty($request->min_price) && !empty($request->max_price)) {

        $property_obj->where('price', '>=', $request->min_price)->where('price', '<=', $request->max_price);

    }


    if (!empty($request->min_quadrature) && !empty($request->max_quadrature)) {

        $property_obj->where('quadrature', '>=', $request->min_quadrature)->where('price', '<=', $request->max_quadrature);

    }


    $results =  $property_obj->get();


    return view('categories.search', compact('category', 'results'));

}


查看完整回答
反对 回复 2021-09-05
  • 1 回答
  • 0 关注
  • 99 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信