gpt4 book ai didi

laravel-4 - Eloquent Raw where 使用类似条件查询

转载 作者:行者123 更新时间:2023-12-04 22:05:02 24 4
gpt4 key购买 nike

我正在使用这个 Eloquent 原始查询来获取一些结合了标题和标签列的搜索结果。我的代码是这样的

$term="Test";
$clips= \Clip::whereRaw("caption like '%?%' OR tags like '%?%' ", array($term,$term))->get();
dd($clips);

但是使用这个我无法得到结果,因为转储没有显示结果,使用下面的代码我能够得到结果:
$term="Test";
$clips= \Clip::whereRaw("caption like '%$term%' OR tags like '%$term%' ")->get();
dd($clips);

和 dump 显示了预期的所有 5 个结果。在第一种情况下我做错了什么。

最佳答案

如果您使用准备好的语句,您应该使用 ?没有别的。如果您自己添加引号,则不应使用准备好的语句。因此,让准备好的语句处理引号并将 % 符号添加到您插入到准备好的语句中的变量中。

$term="Test";
$clips= \Clip::whereRaw("caption like ? OR tags like ? ", array('%'.$term.'%','%'.$term.'%'))->get();
dd($clips);

顺便说一句,您也可以在没有原始位置的情况下执行此操作..
$term="Test";
$clips=\Clip::where("caption","like","%".$term."%")->orWhere("tags","like","%".$term."%")->get();
dd($clips);

...我个人甚至更喜欢使用 scope对于这类事情。

关于laravel-4 - Eloquent Raw where 使用类似条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21952771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com