php未知参数,php – 使用未知数量的参数创建Laravel Eloquent Query

我正在尝试使用用户输入动态创建一个Eloquent查询,该输入根据输入的长度更改查询.使用直接

MySQL这很简单……只需根据用户输入连接查询字符串.使用Eloquent是不可能的,除非你要么a)使用’raw’sql查询,这违背了使用Eloquent的目的或b)使用像eval()函数那样高度不健康的东西.

如何迭代未知长度的用户输入并创建一个Eloquent查询,使用’OR’和’AND’的组合在多个字段中搜索单词

考虑以下无法实际工作的伪代码.

$search = "cat sat on the mat";

$searchWords = explode(' ', $search);

$data['finds'] = DB::table('mytable') [... incomplete query]

foreach ($searchWords as $word) {

->where('firstname', 'like', '%' . $word . '%')

->orWhere('lastname', 'like', '%' . $word . '%')

->orWhere('address', 'like', '%' . $word . '%')->AND [... next word]

}

或者只是放弃和使用原始查询?我可以为每个单词运行一个单独的查询,然后使用PHP来合并/操作结果,但这对于在传统MySQL中的一个查询中可以完成的操作来说似乎非常麻烦.

我正在尝试做的传统MySQL查询将是:

SELECT * FROM `mytable`

WHERE (firstame LIKE '%$cat%' OR lastname LIKE '%cat%' OR address LIKE '%cat%')

AND (firstname LIKE '%sat% OR lastname LIKE '%sat%' OR address LIKE '%sat%')

AND [etc, etc, for all words in user input]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值