yii2 соединение с несколькими таблицами - PullRequest
0 голосов
/ 23 апреля 2019

Я использую kartik gridview и хочу отобразить страницу результатов, используя соединения с несколькими таблицами.ниже я использовал оператор 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 Ответ

0 голосов
/ 23 апреля 2019

Для моделирования EmpDetails добавьте обозначение дополнительных атрибутов, имя_дерева, gpa_no, gpa_sum_insured и fellow_share. Для поиска и сортировки предлагаем создать расширенную модель EmpDetailsSearch.

...