如何在laravel 5.7中获取json值?

时间:2019-05-06 06:52:25

标签: php mysql laravel laravel-5.7

我在数据库中有两个表function getElementByXpath(path) { return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } console.log( getElementByXpath("//div[@id='successMessageGrid']//div").innerText );<div id="successMessageGrid" class="ng-scope" style="display: none;"> <div class="alert alert-success media fade in ng-binding"> Capability updated successfully. <button class="close" type="button" ngclick="RemoveSuccessMessage()"> <i class="fa fa-times-circle"></i></button> </div> </div>

package的字段categories包含格式为package的数据,并以复选框的形式显示category_id数据。

现在,我希望来自["1","11"]的所有数据,其中categories等于package category_id

这是我的代码:

categories

我遇到以下错误:

  

SQLSTATE [42000]:语法错误或访问冲突:1305 FUNCTION
  pre.JSON_CONTAINS不存在(SQL:从“包”中选择*,其中
  JSON_CONTAINS(category_id,'[“ 11”]'))

3 个答案:

答案 0 :(得分:0)

有一个laravel方法可以做到这一点,更多细节here

所以请尝试:

Packages::whereJsonContains('category_id', '11')->get();

如果您的mysql版本不支持json_contains,并且您不能升级它,请尝试以下查询:

Packages::where('category_id', 'like', '%"11"%');

答案 1 :(得分:0)

PHP具有内置方法json_encode(),可轻松将数组编码为JSON字符串格式。我们可以将其实现为: 我们也可以在laravel中使用它

$ array = array('laptop','earphones','mouse'); 返回json_encode($ array);

但是,较新版本的Laravel也有自己的json()方法,该方法会自动设置相关的Content-Type并编码JSON数据:

$ array = array('laptop','earphones','mouse'); 返回response()-> json($ array);

答案 2 :(得分:0)

示例JSON:

[   {     “ id”:11     “ first_name”:“安东尼”,     “ last_name”:“罗斯”,     “英语语言”,     “1级   } ]

如果json中有多个值,则可以尝试执行类似的循环

foreach($target as $target_result){
  echo $target_result->id;
}

如果只有一条记录,请尝试

$target = Var::where('first_name', '=', $request->input('jsonArr'))->first();
return $jsonArr->id