#yii2 #jointable
#yii2 #Присоединиться
Вопрос:
я использую kartik gridview и хочу отобразить страницу результатов, используя объединение с несколькими таблицами. ниже я использовал оператор select для извлечения выходных данных, которые мне нужно отобразить на странице индекса (выделены жирным шрифтом) вместо запроса select
$query = EmpDetails::find()->joinWith(['employeeStatutoryDetail'])
->where(['NOT IN', 'emp_statutorydetails.gpa_no', ['']])
->orWhere(['IS NOT', 'emp_statutorydetails.gpa_no', NULL]);
И мой запрос:
SELECT A.empcode,A.empname,
B.designation,
C.division_name,
D.gpa_no,D.gpa_sum_insured,
E.fellow_share
FROM emp_details AS A JOIN designation
AS B JOIN division
AS C JOIN emp_statutorydetails
AS D JOIN vg_gpa_hierarchy
AS E JOIN vg_gpa_policy
AS F ON F.policy_no=D.gpa_no
WHERE D.empid=A.id AND
A.designation_id=B.id AND
A.division_id=C.id AND
E.sum_insured=D.gpa_sum_insured
Комментарии:
1. генерирует ли ваш необработанный запрос правильные результаты?
Ответ №1:
К элементам данных модели добавьте дополнительные атрибуты, обозначение, имя_разрешения, gpa_no, gpa_sum_insured и fellow_share. Для поиска и сортировки предлагаю создать расширенную модель EmpDetailsSearch.