문제:
Laravel 애플리케이션에 to 열이 있습니다. 이메일 테이블에 JSON 유형이 있으며 이메일 주소를 다음 형식으로 저장합니다.
<code class="JSON">[ { "emailAddress": { "name": "Test", "address": "[email protected]" } }, { "emailAddress": { "name": "Test 2", "address": "[email protected]" } } ]</code>
"[email protected]"로 전송된 모든 이메일 컬렉션을 검색해야 합니다.
해결책:
Laravel의 Eloquent를 사용하면 whereJsonContains 메소드를 사용하여 JSON 열 내의 특정 값을 검색할 수 있습니다. 그러나 초기 쿼리:
<code class="php">DB::table('emails')->whereJsonContains('to->emailAddress->address', '[email protected]')->get();</code>
는 화살표 연산자(->)가 배열 키 내에서 유효하지 않기 때문에 일치 항목을 반환하지 않습니다. 이 문제를 해결하려면 대신 중첩 배열을 사용하십시오.
<code class="php">DB::table('emails') ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]]) ->get();</code>
이 쿼리는 "[email protected]"와 동일한 이메일 주소를 올바르게 검색하고 원하는 컬렉션을 반환합니다.
위 내용은 Laravel의 JSON 열 내에서 이메일 주소를 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!