У нас есть большая база данных с несколькими таблицами, содержащими поле 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
класс.Возможно ли это дистанционно?Я ищу поддержку и руководство, а не конкретное решение.