我在数据库中有两个表,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 关注
- 339 浏览
添加回答
举报
0/150
提交
取消