Как обновить конкретную строку из сводной таблицы в Laravel 5.6? - PullRequest
0 голосов
/ 28 августа 2018

У меня есть эта модель в Organization.php

public function agency()
{
    return $this->belongsToMany('App\Agency')->withPivot('status');
}

и эта модель в Agency.php

public function organizations()
{
    return $this->belongsToMany('App\Organization')->withPivot('status');
}

Как я могу обновить статус определенной строки в моей сводной таблице? Это мой код в контроллере:

public function removeAgency(Request $request){
    $my_agencies = Organization::find($request['org_id']);
    $member = $my_agencies->agency()
        ->where('agency_organization.agency_id', $request['agency_id'])
            ->first();
    $member->pivot->status = 'removed';
    $member->pivot->save();
}

Возвращает сообщение об ошибке: «Создание объекта по умолчанию из пустого значения»

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете использовать метод updateExistingPivot .

Organization::find($request['org_id'])->agency()
    ->updateExistingPivot($request['agency_id'], ['status' => 'removed']);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...