Я строю систему дружбы в Laravel 5, которая требует, чтобы пользователь принимал потенциальную дружбу с другим пользователем.Обновить значение дополнительной сводной таблицы в Laravel 5
Я создал отношения «многие ко многим» между пользователями и «помощниками» (другими пользователями). Отношения выглядеть следующим образом:
// Accepted Friendships
function friendsOfMine()
{
return $this->belongsToMany('App\User', 'helpers', 'user_id', 'helper_id')
->wherePivot('accepted', '=', 1);
}
// Potential Friendships
function potentialFriendsOfMine()
{
return $this->belongsToMany('App\User', 'helpers', 'user_id', 'helper_id')
->wherePivot('accepted', '=', 0);
}
Единственное различие между ними является дополнительным значением в моем «хелперов» сводной таблицы: «принято». «Принято» - это логическое значение, которое по умолчанию равно 0.
Я создаю строку таблицы, когда пользователь сначала предлагает дружбу, а затем хотел бы обновить строку, когда дружба будет принята. Вот версия моего контроллера, который конденсируется два действия в одном блоке кода:
public function store()
{
$currentUser = Auth::user();
$input = Input::get('helper_id');
$helper = User::find($input);
/* Creates "unaccepted" relationship */
$currentUser->friendsOfMine()->attach($helper);
/* Fetches newly created relationship */
$accepted = $currentUser->potentialFriendsOfMine()->where('helper_id', $input);
/* Updates "accepted" column and saves */
$accepted->pivot->accepted = 1;
$accepted->pivot->save();
Flash::success('You are now following this user.');
return Redirect::back();
}
Однако я получаю ошибку на этой линии-$accepted->pivot->accepted = 1;
-Вот гласит: Создание объекта по умолчанию с пустым значением.
В этом случае, как мне получить доступ и обновить значение в записи сводной таблицы, которую я только что создал?
жаль, что я запуталась, что стержень снова? стол? – Rash
Привет @Rash, в этом случае у меня сводная таблица под названием «помощники» со значениями «user_id», «helper_id» и «accept». Я изо всех сил пытаюсь понять, как получить доступ и обновить это «принятое» значение. –
hmm..I знаю, что laravel не приносит «чужие» столы, пока вы не скажете им ... вы читали о функции «with()». Если у меня есть таблица User and Helper, я поручаю laravel принести вспомогательную таблицу с помощью User :: with ('helper') -> где() -> get() – Rash