Установите предложение WHERE по умолчанию для отношений DBIC - PullRequest
0 голосов
/ 04 декабря 2018

У нас есть большая база данных с несколькими таблицами, содержащими поле delete_time.Строки с ненулевым значением в этом поле должны быть исключены из большинства «обычных» запросов.Так, например, у нас есть объект "Org", который has_many объект "User".Но в большинстве случаев $org->users не должно включать объекты «Пользователь» с ненулевым полем delete_time.

Теперь мы можем определить отношение has_many, чтобы исключить их, но это означает, что мы 'Я должен настроить ...->has_many('users' => '::User', ...) везде.Было бы более естественным и менее подверженным ошибкам, если бы класс ::User мог применить «предложение WHERE по умолчанию», которое указывало бы delete_time IS NULL, если и только если delete_time не указано в явном предложении WHERE.(Или, может быть, если в списке параметров has_many нет явного предложения WHERE; я не очень суетливый.)

Я думал, что это можно настроить как черту или плагин в ::User класс.Возможно ли это дистанционно?Я ищу поддержку и руководство, а не конкретное решение.

...