Как применить условие к красноречивым отношениям Laravel - PullRequest
0 голосов
/ 28 января 2019

У меня есть модель ProcessHistory и Person. Мне нужен красноречивый код для связи с несколькими условиями.Условия: 1. oindex = oindex 2. pat_id = pat_id

Я хочу, чтобы красноречивый код получил результат следующего кода sql

select * from tbl_process_history as s join tbl_persons as p on (s.oindex = p.oindex and s.pat_id = p.pat_id)

Мне нужно, чтобы все люди имели одинаковый oindexи pat_id.Я попытался с нижеприведенным красноречивым кодом, где я могу применить условие внутри отношения «собственный».Здесь я могу подать заявку только как статическое значение.

ProcessHistory::with(['own'=>function($query){
                return $query->where('pat_id','');
            }])->get();

Мне нужно условие внутри отношения, где я могу сопоставить pat_id модели истории процесса с моделью персон.

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Я только что обнаружил, что на самом деле искал отношения с составным ключом, но эта функция не предусмотрена в laravel.Это можно решить с помощью пакета https://github.com/topclaudy/compoships.

0 голосов
/ 28 января 2019

ProcessHistory :: with (['own' => function ($ query) use ($ param) {return $ query-> where ('pat_id', $ param);}]) -> get ();

...