donxbje866688 2018-10-11 09:12
浏览 35
已采纳

如何在表格中仅显示“搜索”数据?

I made search form and trying to retrieving data by searching. But before I begin to search data already retrieving on the page. Because I made controller that way already. When I delete that retrieving function, page running just white screen. So the problem is here, I want to see table and data retrieving after search not the before. But troubled about how to do that or doing it wrong.

Here is controller:

public function welcome()
{

    $estates = Estates::orderBy('price')->get();

    $data['estates'] = $estates;
    return view('welcome', $data);

}

public function search(Request $request)
{
    $q = $request->q;
    if (trim($q) !== ""){//here

        $estates = \DB::table('estates')->where("name","LIKE", "%" . $q . "%")
            ->orWhere("address","LIKE", "%" . $q . "%")
            ->get();

        dd($estates);

        if(count($estates) > 0){
            return view("welcome", compact('estates'))->withQuery($q);
        }

    }

    $estates = array();//here
    return view("welcome", compact('estates'))->withMessage("No Found!");//here
}

And also my Route:

Route::get("/", "PagesController@welcome");

Route::post("/search", "PagesController@search")->name('search.route');

Also when I try to search, page is coming not as table, but as like this.

Collection {#221 ▼
  #items: array:1 [▶]
}

If you need to see my view page, I can add it too. Thank you for your help!

  • 写回答

1条回答 默认 最新

  • doter1995 2018-10-12 03:54
    关注

    I solved the problem:

    public function welcome()
        {
    
            $estates = array();//here
    
            $data['estates'] = $estates;
            return view('welcome', $data);
    
        }
    
        public function search(Request $request)
        {
            $q = $request->q;
            if ($q !== null && trim($q) !== ""){//here
    
                $estates = \DB::table('estates')
                    ->where("name","LIKE", "%" . $q . "%")
                    ->orWhere("address","LIKE", "%" . $q . "%")
                    ->orWhere("company_name","LIKE", "%" . $q . "%")
                    ->orderBy('price')->get();
    
                if(count($estates) > 0){
                    return view("search", compact('estates'))->withQuery($q);
                }
    
            }
    
            $estates = array();//here
            return view("search", compact('estates'))->withMessage("No Found!");//here
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 在不同的执行界面调用同一个页面
  • ¥20 基于51单片机的数字频率计
  • ¥50 M3T长焦相机如何标定以及正射影像拼接问题
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路