我尝试使用以下代码使用testId列从我的订阅表中检索整个订阅对象。 testId列被声明为" json"类型但实际上,此列的内容是一个包含单个字符串的数组,如下所示:
["51602a95-73d1-4c24-b3b3-eee288b427e4"]
我尝试使用此代码获取订阅对象但不起作用。如何通过将testId的值搜索到数组中来adpat这段代码来获取订阅对象?
function getSubscriptionByTestId($testId) {
$subscription = Subscription::where('testId', $testId)->first();
return $subscription;
}
答案 0 :(得分:2)
如果所有值都像["51602a95-73d1-4c24-b3b3-eee288b427e4"]
,具体取决于您可以使用的数据库引擎:
$subscription = Subscription::where('testId','like', "%$testId%")->first();
答案 1 :(得分:0)
您可以使用原始查询尝试以下操作。我还不确定如何用Eloquent解决这个问题,但会进一步调查。
return DB::select(
"SELECT * FROM subscription
WHERE testId->\"$[0]\" = \"{$testId}\""
);