首页 > 解决方案 > 检查记录是否存在并返回一个布尔值并将其与表单中的输入进行比较

问题描述

嗨,我在解决这个问题时遇到了麻烦,因为标题说我正在尝试检查记录是否存在并返回一个布尔值而不是数据库中的记录值,这样我就可以将它与过滤器表单进行比较,我知道这可以解决使用嵌套if,但我正在尝试找到更好的方法,这是我到目前为止的代码

public function getSend(){
            if($this->request->role==1){
                $id= Cv::select('cv.user_id','cv.pub')
                    ->where('cv.pub','==',$this->request->pub)
                    ->get();
                dd($id);


                return view('gestione.'.$this->view_namespace.'.send.pagina');
            }

我的想法是这样的

->where('cv.pub','==',$this->request->pub)

这个之所以有效,是因为“pub”在我的数据库中存储了一条布尔记录,例如许多其他记录存储字符串

->where('cv.something','==',$this->request->something)

不起作用,因为“某物”是一个字符串而不是一个布尔值,所以我如何根据是否存在将“某物”转换为布尔值

预先感谢我使用 laravel 5.1

标签: phpmysqllaravel

解决方案


$result = Cv::select('cv.user_id','cv.pub')
                    ->where('cv.pub','==',$this->request->pub);
if($request->something){
$result = $result->whereNotNull('cv.something'); // or != '', depending how you store it
}

这主要是过滤器的工作原理


推荐阅读