У меня проблемы с применением пользовательского искателя из поведения в таблице соединений для ассоциации ownToMany с CakePHP 3.x.
Моя основная модель Assessment
может иметь множество UnableToCompleteReasons
, и я используюповедение muffin/trash
для поддержки мягкого удаления в таблице соединений AssessmentUtcReasons
.
$this->belongsToMany('UnableToCompleteReasons', [
'joinTable' => 'AssessmentUtcReasons',
'foreignKey' => 'AssessmentLogId',
'targetForeignKey' => 'UtcReasonId',
'through' => 'AssessmentUtcReasons',
'saveStrategy' => 'replace',
]);
Технически ассоциация здесь работает просто отлично.Удаленные UnableToCompleteReasons
ассоциации не возвращаются в модель Assessment
, как вы ожидаете.
Моя проблема в том, что мне нужно также возвращать удаленные записи, включая все данные о соединении, и я могу 't выяснить, используя withTrashed
искатель из поведения muffin/trash
, который находится на моем AssessmentUtcReasons
табличном объекте.
Когда я использую свой full
видоискатель, я хочу применить withTrashed
видоискатель к объединяющей таблице - поскольку таблица UnableToCompleteReasons
не использует мягкое удаление.
Вотпо сути то, что я собираюсь сделать:
public function findFull(Query $query, $options)
{
return $query->contain([
'UnableToCompleteReasons' => function ($q) {
// These finders should be on the JOIN table
return $q->find('withTrashed')->find('ordered');
},
]);
}
}
Я перепробовал все, что мог придумать, например, использовать опцию finder
в ассоциации, но, похоже, все относится только к другой таблице, а несоединительный стол
Я не могу найти ничего в документации по этому вопросу, поэтому, пожалуйста, извините, если я что-то пропустил.Спасибо!