Laravel where condition from string

j1dl9f46  于 2023-06-24  发布在  其他
关注(0)|答案(5)|浏览(54)

我只想从字符串中创建一个where子句,因为where子句依赖于另一个变量。我就像这样

$where_condition = "post_flight_informations.schedule_year,=,2022";

然后应用到这样的查询

->where($where_condition)

但是它将**$where_condition**作为单个参数,所以我有一个Missing argument 2错误,有人可以帮助我吗?谢谢

lh80um4z

lh80um4z1#

在这种情况下,你应该让你的变量像这样:

$where_condition = [
    ['post_flight_informations.schedule_year', '=', 2022],
];

和应用查询

->where($where_condition)->get();
5us2dqdw

5us2dqdw2#

在laravel文档中,你应该在where方法中放入3个参数进行查询。
在你的问题中,你传递了一个参数。这是使用where方法将where添加到查询中的正确方法。

->where("post_flight_informations.schedule_year","=","2022")->get();

第一个参数是列的名称。第二个参数是运算符。第三个是要在列值中比较的值。

yvgpqqbh

yvgpqqbh3#

where条件使用了两个参数。

$where_condition = "post_flight_informations.schedule_year,=,2022";

// Split the condition into an array
$condition_parts = explode(',', $where_condition);

//Pass the parts as individual arguments
$query->where(...$condition_parts);
rdlzhqv9

rdlzhqv94#

谢谢大家终于这样解决了

$where_condition = ["post_flight_informations.schedule_year", "=" , $request_year];

和/或

->where(...$where_condition)
42fyovps

42fyovps5#

我建议你像下面的例子一样使用whereRaw

$whereRawStmt = 'post_flight_informations.schedule_year = 2022';

然后将此变量与

->whereRaw($whereRawStmt)

相关问题