Как использовать withTrashed, когда я запрашиваю с нетерпением загрузки?
19275 просмотра
1 ответ
У меня есть несколько таблиц, одна из которых является таблицей, в Users
которой есть мягкие удаленные строки.
У меня есть код как:
$appointments = Appointment::with('user')->get();
$return = array();
foreach ($appointments as $key => $appointment) {
$return[] = array(
$appointment->customer_name,
$appointment->date->format('d/m/Y'),
$appointment->time,
$appointment->status,
$appointment->user->full_name,
);
}
Поскольку строка с пользователем удалена, я получаю сообщение об ошибке:
$appointment->user->full_name
потому что, конечно, нет совпадений для этого пользователя.
Я попытался добавить withTrashed () в первую строку, как до, так и после, with('user')
но это не помогло.
Как мне убедиться, что этот запрос действительно возвращает все встречи со всеми пользователями, даже удаленными?
Автор: Rich Bradshaw Источник Размещён: 13.11.2019 11:33Ответы (1)
67 плюса
Я не уверен на 100%, что это работает, так как этот метод предназначен для добавления ограничений к быстрой загрузке, но вы можете попробовать это:
$appointments = Appointment::with(array('user' => function($query) {
$query->withTrashed();
}))->get();
Это должно применяться с помощью методаTrashed () к запросу, который захватывает пользователей, в отличие от запроса, который захватывает встречи.
Да, и просто чтобы уточнить, вы можете добавить withTrashed () к обоим запросам:
$appointments = Appointment::with(array('user' => function($query) {
$query->withTrashed();
}))->withTrashed()->get();
Изменить: просто подумал о более простом методе:
Добавьте withTrashed () к отношению user () (делайте это, только если вы хотите, чтобы это применялось КАЖДЫЙ раз, когда вы вызываете это отношение):
public function user() {
return $this->hasOne('User')->withTrashed();
}
Автор: TonyArra
Размещён: 24.02.2014 06:26
Вопросы из категории :
- laravel Laravel & InnoDB
- laravel Кнопка возврата Laravel
- laravel ВСТАВИТЬ ИГНОР, используя Свободный Ларавель
- laravel Массовая вставка в Laravel с использованием красноречивого ORM
- laravel How can I find the current language in a Laravel view?
- laravel Как установить переменные в шаблоне лезвия Laravel
- laravel Laravel eloquent counting a relation
- laravel ORM: дружба / буддистские отношения
- laravel Laravel - Using (:any?) wildcard for ALL routes?
- laravel Laravel: как я могу пройти через поля и отношения ORM
- laravel Обратные вызовы модели Laravel после сохранения, перед сохранением и т. д.
- laravel Проверка подлинности Laravel для всех страниц
- laravel сессия laravel, возвращающая ноль, несмотря на установку
- laravel Laravel - Eloquent or Fluent random row
- laravel Как вернуть имя таблицы базы данных в Laravel
- laravel Автоматическое удаление связанных строк в Laravel (Eloquent ORM)
- laravel Как я могу построить запрос на основе условий в Laravel
- laravel Создать контроллер и модель
- laravel Laravel объединяет запросы AS
- laravel How to change the default delimiter of Handlebars.js?