이 글에서는 Laravel 관련 쿼리에서 반환된 오류 ID에 대한 해결 방법을 주로 소개합니다. 매우 훌륭하고 참고할 만한 가치가 있으므로, 필요한 친구가 참고할 수 있습니다.
Laravel Eloquent에 있는 Join 관련 쿼리를 사용하세요. 같은 이름 필드(예: id)가 있는 경우 해당 값은 기본적으로 같은 이름을 가진 후속 필드로 덮어쓰여 예상치 못한 결과를 반환합니다. 예를 들어 다음 관련 쿼리는
$priority = Priority::rightJoin('touch', 'priorities.touch_id', '=', 'touch.id') ->where('priorities.type', 1) ->orderBy('priorities.total_score', 'desc') ->orderBy('touch.created_at', 'desc') ->get();
$priority = Priority::rightJoin('touch', 'priorities.touch_id', '=', 'touch.id') ->where('priorities.type', 1) ->orderBy('priorities.total_score', 'desc') ->orderBy('touch.created_at', 'desc') ->get();
Laravel 관련 쿼리에서 잘못된 ID가 반환됩니다
여기서 id 값은 우선 순위 테이블의 id 필드가 아니라, 실행된 sql 문이 출력되는 경우:
select * from `priorities` right join `touch` on `priorities`.`touch_id` = `touch`.`id` where `priorities`.`type` = '1' order by `priorities`.`total_score` desc, `touch`.`created_at` desc
select * from `priorities` right join `touch` on `priorities`.`touch_id` = `touch`.`id` where `priorities`.`type` = '1' order by `priorities`.`total_score` desc, `touch`.`created_at` desc
SQL 쿼리를 사용한 결과는 실제로 다른 테이블의 동일한 이름을 가진 id 필드의 이름이 id1입니다. 기본값이지만 Laravel에서 반환한 id 값은 그림에 표시된 것과 다릅니다. id 필드는 동일한 이름을 가진 다른 테이블의 필드로 덮어써졌습니다.
해결책은 필드를 지정하는 select 메서드를 추가하고 쿼리 문 코드를 올바르게 구성하는 것입니다. PHP$priority = Priority::select(['priorities.*', 'touch.name', 'touch.add_user']) ->rightJoin('touch', 'priorities.touch_id', '=', 'touch.id') ->where('priorities.type', 1) ->orderBy('priorities.total_score', 'desc') ->orderBy('touch.created_at', 'desc') ->get();
$priority = Priority::select(['priorities.*', 'touch.name', 'touch.add_user']) ->rightJoin('touch', 'priorities.touch_id', '=', 'touch.id') ->where('priorities.type', 1) ->orderBy('priorities.total_score', 'desc') ->orderBy('touch.created_at', 'desc') ->get();
이 프로젝트는 WeChat QR 코드 스캐닝 결제 API(국내 결제)를 통합합니다
위 내용은 PHP에서 Laravel 관련 쿼리에서 반환된 오류 id에 대한 해결 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!