雄辩的Where子句中类似通配符的语法?

时间:2017-04-19 09:55:57

标签: laravel laravel-5 eloquent laravel-eloquent

这是我的where子句:

->where( 'post_type', '=', 'blog' )

有没有办法取代博客'通过通配符,所以它将匹配任何'post_type' ?

完整查询:

$db = ( new DbSql() )->db()->getConnection();
$postsCount = $db->table( 'posts' )
                          ->where( 'status', '=', 'published' )
                          ->where( 'post_type', '=', 'blog' )
                          ->where( 'alerts', '<', Settings::CONTENT_ALERT_NUMBER_ALLOWANCE )
                         ->count() ?? null;

3 个答案:

答案 0 :(得分:10)

使用like

->where('post_type', 'like', '%'.$string.'%')

答案 1 :(得分:0)

试试这个

$query->where($field, 'like', $input . '%');

答案 2 :(得分:-2)

我假设您将博客存储在任何变量中,例如$blog

if($blog) {
    $query->where('post_type', '=', $blog);
}

如果博客为空,请不要添加where条件。

修改:

我假设您使用的是Laravel查询构建器。

$postsQuery = $db->table( 'posts' )
                          ->where( 'status', '=', 'published' );
if($blog){
    $postQuery->where( 'post_type', '=', $blog );
}
$postCount = $postQuery->where( 'alerts', '<', Settings::CONTENT_ALERT_NUMBER_ALLOWANCE )
                         ->count() ?? null;