2015-04-26 2 views
0

У меня есть много разных отношений, установленных в laravel, где я хочу сохранить пользовательские настройки. Настройка может быть установлена ​​у многих пользователей, и у пользователя может быть множество настроек.Laravel сохранить или обновить многие во многих отношениях с дополнительным столбцом

У меня есть дополнительное поле с именем «value» в сводной таблице, где я хочу сохранить значение, заданное пользователем.

Ну, я хочу создать новую запись, когда нет значения для конкретного пользователя и настройки. Но если уже есть значение, оно должно быть обновлено.

Это то, что я пробовал:

$setting = Setting::find(1); 
Auth::user()->settings()->save($setting,array('value' => 15)); 

Как только я изменить значение на что-то другое, что автоматически создает новую запись. Но я бы хотел, чтобы он обновлялся. Как я могу это достичь?

ответ

0

Используйте метод UpdateOrCreate.

$setting = Setting::find(1); 
Auth::user()->settings()->updateOrCreate($setting,array('value' => 15)); 

Method Documentation

+0

Спасибо! Я все еще использую laravel 4.2, и этот метод, похоже, не существует. Вот почему я этого не нашел. Подумайте, что пришло время обновить. – sleepless