eloquent Where 子句中的类似通配符的语法?
Wildcard-like syntax in an eloquent Where clause?
这是我的 where 子句:
->where( 'post_type', '=', 'blog' )
有什么方法可以用通配符替换 '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;
使用like
:
->where('post_type', 'like', '%'.$string.'%')
试试这个
$query->where($field, 'like', $input . '%');
我假设您将 blog 存储在任何变量中,比如 $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;
这是我的 where 子句:
->where( 'post_type', '=', 'blog' )
有什么方法可以用通配符替换 '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;
使用like
:
->where('post_type', 'like', '%'.$string.'%')
试试这个
$query->where($field, 'like', $input . '%');
我假设您将 blog 存储在任何变量中,比如 $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;