我使用这个查询并得到一个错误:
$description = $request->get('description');
if (!empty($description)){
$description_query = Transcationhistorique::where(['sender_id' => $user_id, "%$description%", 'LIKE','description'])
->orWhere('receiver_id', $user_id)->get();
}else{
$description_query = "" ;
}这就是我得到的错误:
"SQLSTATE42S22:未找到列:'where子句‘1054个未知列'0’(
sender_id= 32和0= %salaire%和1= LIKE和2= description)或receiver_id=32)
我真正想要的是:
select * from `transcation_historique` where (`sender_id` = 32 and `description` = %salaire%) or `receiver_id` = 32)发布于 2019-02-26 11:03:10
尝尝这个,
$description_query = Transcationhistorique::where(
function($query) use ($user_id, $description){
return $query->where('sender_id', $user_id)
->where('description', 'like', '%' . $description .'%');
}
)
->orWhere('receiver_id', $user_id)
->get();发布于 2019-02-26 11:08:33
您的where查询结构似乎不正确。如果要使用"=“Source以外的运算符,则应使用以下结构
$query->where([
['column_1', '=', 'value_1'],
['column_2', '<>', 'value_2'],
[COLUMN, OPERATOR, VALUE],
...
])我的建议是:
$description = $request->get('description');
if (!empty($description)){
$description_query = Transcationhistorique::where([
['sender_id', '=', $user_id],
['description', 'LIKE', "%{$description}%"]
])
->orWhere('receiver_id', $user_id)->get();
}else{
$description_query = "" ;
}发布于 2019-02-26 11:28:05
试试这个:
Transcationhistorique::where('receiver_id', '=', $user_id)
->orWhere(function ($query) use ($user_id, $description) {
$query->where('sender_id', '=', $user_id)->where('description', 'LIKE', "%".$description."%");
})->get();https://stackoverflow.com/questions/54883894
复制相似问题