软删除 不能和orWhere 一起使用吗?

问题1:
$softinfos = softPost::with("SalesPrice", "userInfo")
           ->where("keyword", "like", "%" . $keyword . "%")->orWhere("title", "like", "%" . $keyword .“%")
           ->orWhere("softname", "like", "%" . $keyword . "%")
           ->orderBy("sales_volume", "desc")->SelectList()->paginate($number? : $this->pagenum);

这样查询,会把软删除的数据也查询出来,导致出错

问题2:
还有个问题
function ssss(){
$title = "Admin";
DB::table('users')
        ->where('name', '=', 'John')
        ->orWhere(function($query)
        {
            $query->where('votes', '>', 100)
                  ->where('title', '<>', $title);
        })
        ->get();
}

这里的$title 没有办法使用。

如果可以解决问题2 问题1就可以解决。

这种问题有没有什么比较好的解决方案。
已邀请:

wuangv - you win

赞同来自: FiveSay

好吧,我承认我PHP 没有学好,
$title = "Admin";
DB::table('users')
    ->where('name', '=', 'John')
    ->orWhere(function($query) use($title)
    {
        $query->where('votes', '>', 100)
              ->where('title', '<>', $title);
    })
    ->get();

在闭包函数后面加一个 use()就可以使用外部的变量。

要回复问题请先登录注册