Можно ли передавать массив моделей для установления полиморфной связи many-to-many?

Как можно связать массив моделей с полиморфной связью many-to-many с моделью <code>Folder</code>? У меня есть 4 класса типа <code>Job</code>, и мне нужно установить между ними такую связь. Каким образом это можно реализовать?
  • 11 марта 2024 г. 13:49
Ответы на вопрос 3
Да, можно передавать массив моделей для установления полиморфной связи many-to-many. 

Чтобы связать массив моделей с полиморфной связью many-to-many с моделью `Folder`, вам необходимо воспользоваться методом `morphToMany` в модели `Folder`. В данном случае, вы можете создать промежуточную таблицу, которая будет содержать полиморфные отношения между `Folder` и классами типа `Job`.

Пример кода:

```php
class Folder extends Model
{
    public function entities()
    {
        return $this->morphToMany(Entity::class, 'entityable');
    }
}

class Entity extends Model
{
    public function folders()
    {
        return $this->morphToMany(Folder::class, 'entityable');
    }
}

// Связываем массив моделей с полиморфной связью many-to-many
$folder = Folder::find($folder_id);

$jobs = [
    Job1::find($job1_id),
    Job2::find($job2_id),
    Job3::find($job3_id),
    Job4::find($job4_id)
];

foreach ($jobs as $job) {
    $folder->entities()->attach($job);
}
```

Таким образом, вы можете установить полиморфную связь many-to-many между моделью `Folder` и массивом моделей классов типа `Job`.
Никак. Связи можно делать только между моделями.
Похожие вопросы