>  기사  >  백엔드 개발  >  Yii2는 ID를 이름으로 변환하기 위해 GridView의 열을 쿼리해야 합니까?

Yii2는 ID를 이름으로 변환하기 위해 GridView의 열을 쿼리해야 합니까?

WBOY
WBOY원래의
2016-08-18 09:15:44947검색

1. Yii2 ActiveDataProvider에는 자체 페이징 기능이 있습니다. 목록에서 ActiveDataProvider를 사용할 때 쿼리 결과를 찾을 필요는 없습니다. 일반적으로 편의상 GridView의 열에서 직접 쿼리하고 해당 ID를 이름이 있는데 이렇게 디버그 메소드를 확인해보면 같은 문장이 여러번 실행되어 효율성에 영향을 미치게 됩니다. Yii2의 사용사양에 따르면 잘못된 것인가요?
2. ID를 이름으로 변환하기 위해 GridView의 열을 쿼리하지 않는 경우 어떻게 처리해야 하나요? ID를 GridView에 전달하기 전에 다중 테이블 연관 쿼리를 사용하여 ID를 이름으로 변환하는 것이 좋은 생각입니까?

답글 내용:

1. Yii2 ActiveDataProvider에는 자체 페이징 기능이 있습니다. 목록에서 ActiveDataProvider를 사용할 때 쿼리 결과를 찾을 필요는 없습니다. 일반적으로 편의상 GridView의 열에서 직접 쿼리하고 해당 ID를 이름이 있는데 이렇게 디버그 메소드를 확인해보면 같은 문장이 여러번 실행되어 효율성에 영향을 미치게 됩니다. Yii2의 사용사양에 따르면 잘못된 것인가요?
2. ID를 이름으로 변환하기 위해 GridView의 열을 쿼리하지 않는 경우 어떻게 처리해야 하나요? ID를 GridView에 전달하기 전에 다중 테이블 연관 쿼리를 사용하여 ID를 이름으로 변환하는 것이 좋은 생각입니까?

두 가지 방법의 조합:

  1. ActiveDataProvider를 구성할 때 다음과 같이 with()를 추가하세요.

    <code>$query->with(['store'])->where(['name' => $something]);
    </code>

이런 방식으로 저장소 테이블의 내용이 결과 집합에 포함되므로 반복적으로 쿼리할 필요가 없습니다.

  1. Memcache를 활성화하고 결과를 미리 메모리에 저장하면 데이터베이스 부담도 효과적으로 줄일 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.