我在數據庫中有兩個表,package并且categories。package有一個字段category_id,其中包含此格式的數據并以復選框的形式["1","11"]顯示categories數據。現在,我想從所有的數據package在那里category_id等于categories id。這是我的代碼:public function archive_packages(Request $request, $slug){ $title='Archive Packages'; $para=''; $slugs='archive-packages'; $categoryRow = Category::where('slug',$slug)->first(); $categoryID = $categoryRow->id; $package = Packages::whereRaw('JSON_CONTAINS(category_id, \'["11"]\')')->get(); dd($package); return view('pages.archive-packages',compact('title','para','slugs','package'));}我收到以下錯誤:SQLSTATE [42000]:語法錯誤或訪問沖突:1305 FUNCTIONpre.JSON_CONTAINS不存在(SQL:從“ packages”中選擇*,其中JSON_CONTAINS(category_id,'[“ 11”]'))
3 回答

Helenr
TA貢獻1780條經驗 獲得超4個贊
PHP具有內置方法json_encode(),可輕松將數組編碼為JSON字符串格式。我們可以將其實現為:我們也可以在laravel中使用它
$ array = array('筆記本電腦','耳機','鼠標'); 返回json_encode($ array);
但是,較新版本的Laravel也有自己的json()方法,該方法會自動設置相關的Content-Type并編碼JSON數據:
$ array = array('筆記本電腦','耳機','鼠標'); 返回response()-> json($ array);

白豬掌柜的
TA貢獻1893條經驗 獲得超10個贊
JSON示例:
[{“ id”:11,“ first_name”:“ Anthony”,“ last_name”:“ Ross”,“ language”:“ english”,“ grade”:1}]
如果您在json中有多個值,則可以嘗試執行類似的循環,
foreach($target as $target_result){
echo $target_result->id;
}
如果您只有一條記錄,請嘗試,
$target = Var::where('first_name', '=', $request->input('jsonArr'))->first();
return $jsonArr->id
- 3 回答
- 0 關注
- 367 瀏覽
添加回答
舉報
0/150
提交
取消