Использование Laravel 4.2. *, У меня есть сводная таблица, которая реализует мягкие удаления. Когда я запускаю Model :: all(), я получаю ожидаемые результаты, но когда я получаю доступ к данным через родительский элемент, я получаю также удаленные строки.Laravel Eloquent принадлежит ToMany() -> getResults() игнорирует мягкие удаления
Родитель модель классификации имеет следующий код:
public function organizations(){
return $this->belongsToMany('Organization', 'organization_classifications', 'classification_id', 'organization_id')->getResults();
}
Поворотная модель OrganizationClassification выглядит следующим образом:
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class OrganizationClassification extends BaseCrudModel{
use SoftDeletingTrait;
protected $dates = ['deleted_at'];
protected $table = 'organization_classifications';
}
таблица имеет обнуляемым колонка, deleted_at, и один из 2-х записей имеет правильное значение datetime в этом столбце.
Если я OrganizationClassification :: все() Я получаю одну строку назад, но если бы я сделать следующее:
$c = Classification::find(1);
$ret = $c->rganizations();
Я получаю 2 строк назад.
Есть ли способ вернуть только восстановленные строки, но в смешанном формате, который предоставляет getResults?
Я предполагаю, что 'BaseCrudModel' расширяет' Eloquent'. Также что делает 'getResults()', поскольку он не является частью API-интерфейса построителя запросов? – Bogdan
В документе API недостаточно сказано о том, что возвращает getResults(), а не «Получить результаты отношений». Это смешанный массив и тянет строку, опорную точку и, может быть, (я не помню) соседированную строку. И да, BaseCrudModel расширяет Eloquent. – JohnL