Php 如何从laravel 8中的表中计数记录

Php 如何从laravel 8中的表中计数记录,php,laravel,Php,Laravel,我想要实现的是,当db_表中不存在来自表单的所有搜索词时,将它们保存在db中 它不起作用的是第三步,如下面的评论所示 public function search(Request $request){ $q = $request->get('q', 'Δεν υπαρχει'); if (!$request->filled('q')) $q = 'Δεν υπαρχει'; else{ //1 Firs

我想要实现的是,当db_表中不存在来自表单的所有搜索词时,将它们保存在db中

它不起作用的是第三步,如下面的评论所示

    public function search(Request $request){
        $q = $request->get('q', 'Δεν υπαρχει');
        if (!$request->filled('q')) $q = 'Δεν υπαρχει';
        else{ 
            //1 First save in db all search terms @ table Searches
            $search_term = new SEARCH();
            $search_term->term = $request->get('q');
            $search_term->save();
            //2 Then return all relevant eshops
            $eshops = Eshop::orWhere('tags', 'like', '%'.$q.'%')->
                             orWhere('title', 'like', '%'.$q.'%')->
                             orWhere('link', 'like', '%'.$q.'%')->
                             get()->count();

            $count = $eshops->count();

            if($count == 0){
            //3 Lastly save in db all not found search terms @ table notfound
            $not_found_search_term = new NOTFOUND();
            $not_found_search_term->term = $request->get('q');
            $not_found_search_term->save();
            }

        }
        return view('eshops', ['eshops' => $eshops]);
    }

执行此操作后,您应该会遇到下一个错误
调用int上的成员函数count()

这是因为您复制了
->count()

您正在使用
count()
两次。在
Eshop
查询中执行一次,然后在分配
$count
变量时执行一次。
$eshops = Eshop::orWhere('tags', 'like', '%'.$q.'%')->
                             orWhere('title', 'like', '%'.$q.'%')->
                             orWhere('link', 'like', '%'.$q.'%')->
                             get()->count();

            $count = $eshops->count();