我通過JSON獲取值,當我使用子句時,它向我顯示了此錯誤$id$id$tracksWHEREpreg_replace():參數不匹配,模式是字符串,而替換是數組它顯示如下:Array $id = ( [0] => Array ( [4843] => 4843 [4844] => 4844 ) [1] => Array ( [396] => 396 ) [2] => Array ( [3963] => 3963 ) )我的控制器:$track = Input::get('tracks');$id = [];foreach($track as $key => $tracks){ $id[] = json_decode($tracks, true);}$tracks = Element::with( 'composers', 'format_mp3s', 'loopsets.format_mp3s', 'mixes.format_mp3s', 'opening_key', 'closing_key', 'speed', 'mood', 'metre', 'tonic')->where('id', $id)->orderBy($sortBy, $dir)->get();
1 回答
MMTTMM
TA貢獻1869條經驗 獲得超4個贊
您正在使用的條件是關聯數組,這就是您收到此錯誤的原因。$idswhere
您可以嘗試以下代碼僅獲取數組,然后將其作為條件傳遞以獲得所需的結果idswhereIn
$newIds = [];
foreach ($ids as $value) {
foreach($value as $finalValue) {
$newIds[] = $finalValue;
}
}
使用 代替whereInwhere
->whereIn('id', $newIds);
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消
