add and remove entity relations

This commit is contained in:
2024-11-21 11:47:13 +03:00
parent 65b332811f
commit 860ea1a82d
4 changed files with 19 additions and 16 deletions

View File

@ -53,9 +53,22 @@ class EntityRelation
return false;
}
public function removeFromEntityRelations(string $entity, string $property)
public function removeFromEntityRelations(string $entity, string $property): bool
{
$entity_relations_info = Option::where("key", "entity_relations")->first();
if ($entity_relations_info) {
$entity_relations = json_decode($entity_relations_info->value, true);
if ($entity_relations[$entity]) {
if ($entity_relations[$entity][$property]) {
unset($entity_relations[$entity][$property]);
$entity_relations_info->value = json_encode($entity_relations, JSON_UNESCAPED_UNICODE);
$entity_relations_info->save();
return true;
}
}
}
return false;
}
public function getEntityRelationsBySlug(string $slug)
@ -70,14 +83,15 @@ class EntityRelation
return false;
}
public function addEntityRelation(array $data): bool
public function addEntityRelation(string $entity, string $property): bool
{
$entity_relations_info = Option::where("key", "entity_relations")->first();
if ($entity_relations_info) {
$entity_relations = json_decode($entity_relations_info->value, true);
foreach ($data as $entity => $relation) {
$entity_relations[$entity] = $relation;
if (isset($entity_relations[$entity])) {
$entity_relations[$entity][] = $property;
} else {
$entity_relations[$entity] = $property;
}
$entity_relations_info->value = json_encode($entity_relations, JSON_UNESCAPED_UNICODE);
$entity_relations_info->save();

View File

@ -32,7 +32,6 @@ $info_to_table['data'] = $modules_info;
$table = new \Itguild\Tables\ListJsonTable(json_encode($info_to_table, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
$table->addAction(function ($row, $url) use ($moduleService) {
$slug = $row['slug'];
if ($moduleService->isActive($slug)) {