Php 如何从laravel 8中的表中计数记录
我想要实现的是,当db_表中不存在来自表单的所有搜索词时,将它们保存在db中 它不起作用的是第三步,如下面的评论所示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
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();