laravel - обновляет полиморфные отношения один-ко-многим - PullRequest
1 голос
/ 25 апреля 2019

У меня три таблицы в полиморфных отношениях «один ко многим»

┌─────────────────┐          ┌─────────────────┐          ┌──────────────────┐
│ users           │          │ phones          │          │ departments      │
├─────────────────┤          ├─────────────────┤          ├──────────────────┤
| id              |          | id              |          | id               |
| name            |          | name            |          | name             |
└─────────────────┘          | phones_type     |          └──────────────────┘
                             | phones_id       |          
                             └─────────────────┘          

Модель телефона:

public function phones()
 {
   return $this->morphTo();
 }

Модель пользователя:

public function phones()
 {
   return $this->morphMany('App\Phone', 'phones');
 }

Модель отдела:

public function phones()
 {
   return $this->morphMany('App\Phone', 'phones');
 }

Теперь я хочу обновить телефонные номера, чтобы пользователь мог редактировать / добавлять / удалять номера. Я не могу понять это за один шаг, поэтому я попытался сначала удалить все телефоны, а затем добавить новые номера

Мой код: DepartmentController:

public function update(UpdateDepartment $request, Department $department)
    {
        $department->phones()->delete();
        $department->name = $request['name'];
        $department->save();
        foreach ($request->phone as $value) {
            $phone = new Phone;
            $phone->name = $value;
            $ department->phones()->save($phone);
        }
    }

UpdateDepartment.php:

public function rules()
    {
        return [
            'name' => 'required|alpha_spaces|min:3|max:255|unique: department,name,'.$this-> department ->id,
            'phone'    => 'required|array|unique:phones,name,'
            'phone.*'  => 'required|distinct|unique:phones,name,',
        ];
    }

У меня два вопроса:

1 - это правильный путьсделать это?есть ли способ синхронизировать обновленные телефонные номера за один шаг?

2- Если это так ... Как заставить уникальное правило игнорировать заданный идентификатор, если пользователь просто добавляет телефонные номера к существующимцифры?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...