2017-03-07 159 views
1
$exams=[{"id":1}]; 

$toReturn['exams'] =exams_list::whereIn('examClasses',$exams)->get()->toArray(); 

如何做到这一点?搜索json的值在哪里in laravel?

+0

'$ exams = [{“id”:1}];'是初始化对象的错误方法。它应该是'$ exams = [“id”=> 1];' –

回答

0

你可以做如下

$exam_id = 1; 
$toReturn['exams'] =exams_list::where('examClasses->"$.id"',$exam_id)->get()->toArray(); 

//As per your question 
//$exams=[{"id":1}]; =======> Wrong way 
$exams=["id" => 1]; 
$toReturn['exams'] =exams_list::where('examClasses->"$.id"',$exam["id"])->get()->toArray(); 

参见下面的例子给出,请参阅https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html

  • 列 - >路径

在MySQL 5.7.9及更高版本, - >运算符在与两个参数一起使用时用作JSON_EXTRACT()函数的别名,l eft和右侧的JSON路径,这个路径是根据JSON文档(列值)进行评估的。您可以使用这些表达式来代替SQL标识符出现的列标识符。

+0

谢谢@vaibhavaraj,但这不起作用。在这里,$ exam_id = [{“id”:1}]; – Cliffs

+0

我根据您的建议更新了我的答案。 –

+0

Thankyou @Vaibhav – Cliffs