我怎样才能逃脱Laravel/Elount中的LIKE条款?例如.,

$search = Input::query('sSearch', '');
if($search !== '') {
    $paginatedBookings->where('first_name', 'LIKE', '%' . $search . '%');
}

如果$search包含%_,则需要对其进行转义.

推荐答案

另一个答案忘记了转义字符本身,下面是一个更健壮的解决方案:

/**
 * Escape special characters for a LIKE query.
 *
 * @param string $value
 * @param string $char
 *
 * @return string
 */
function escape_like(string $value, string $char = '\\'): string
{
    return str_replace(
        [$char, '%', '_'],
        [$char.$char, $char.'%', $char.'_'],
        $value
    );
}

Laravel相关问答推荐

Nginx上带有SSL的Laravel混响

Laravel Livewire 组件在刷新后不会自动刷新/重新加载

为什么 Laravel 5 会自动更新我的日期字段?

Laravel - 加载常见的页眉和页脚以查看

Laravel 5.4 中的自定义助手类

Laravel Blade 模板 @foreach 订单

如何在 Laravel 4 中使用没有 id 的 Eloquent 更新数据

laravel 密码盐存储在哪里?

如何从 laravel 控制器执行外部 shell 命令?

Laravel 4 定义 RESTful 控制器

Laravel 随机排序

Laravel 初学者的良好开端

Laravel 5 环境配置数组?

Laravel 无法创建根目录

升级到 laravel 5.3 后错误 datetime format: 1292 Incorrect datetime value: '0000-00-00 00:00:00'

Laravel Eloquent 多态一对一?

laravel 队列 - 同步驱动程序如何工作?它是在单独的进程/线程还是主执行线程中执行?

找不到框laravel/homestead

如何在 Laravel 5 中的每个相关输入字段旁边显示验证错误?

laravel如何访问具有表编号名称的列?