Есть ли способ проверить, ссылается ли сущность на внешнюю таблицу (проверьте существование отношения внешнего ключа) и получить сущности или идентификаторы из этих внешних таблиц, которые Связанный?Проверьте, ссылается ли объект на внешнюю таблицу и получает ли она сущности
В следующей ситуации: У меня есть куча сущностей для удаления. Но некоторые из них могут быть указаны в других таблицах. Я работаю в целом, поэтому я не знаю, с какой моделью я работаю ни с какими связями, которые у нее есть. Я хочу фильтровать эти объекты, которые не могут быть удалены, и получить сущности или идентификаторы из внешних таблиц, связанных с моделью, которую я работаю, поэтому я могу показать их после завершения процесса.
код будет в основном следующим образом:
public function removeEntities($table_alias, $data){
$data = $this->checkData($data); //do some work...
$table_object = TableRegistry::get($table_alias);
// here I'd like to get the entities or ids from tables related to $table_object that can't be deleted
$data = $this->check_relationship($table_object, $data);
$table_object->deleteAll(["common_index IN" => $data["to_delete"]]); //remove the guys that are related to nobody
return $data["cant_delete"]; //return the foreign entities/ids which are related to entities from $table_object
}
Если я не ясно, пожалуйста, помогите мне в комментариях. Мне было очень трудно развить этот вопрос.
Предположим, я работаю с Companies
, и я должен удалить некоторые из них:
У меня есть список компаний, чтобы удалить, но я могу удалить только те, которые не относящихся к Workers
и Clients
. Кроме того, я хочу получить связанные Workers
и Clients
.
Вы, вероятно, хотите, чтобы посмотреть в 'information_schema'. – Uueerdo