У меня есть 3 таблицы пользователей, Языки и Language_User, как показано ниже:Обновление сводных таблиц с помощью функции поиска типа на дополнительное поле - Laravel
Пользователиидентификатор
имя
...
Языки
ID
язык
Language_User
ID
user_id
LANGUAGE_ID
типа ('учиться', 'родной')
Я хотел бы обновить LANGUAGE_ID для оба типа, но в зависимости от типа.
Итак, если $user = User::find($id); and type is native
ввести language_id as 3
(скажем)
аналогично, if type is learn
ввести language_id as 4
(скажем), которое происходит от формы типа пластыря.
Я не получить его, как использовать это и добавить дополнительную проверку для типа: $lang = User::find($id)->languages()->updateExistingPivot($languageId, $attributes);
ИЛИ
App\User::find(1)->languages()->save($language, ['language_id' => $learn]);
Как проверить тип в сводной таблице, прежде чем перекрывая данные.
Я попытался это:
public function settings_update(Request $request, $id)
{
$rules = array(
'learn' => 'required',
'native' => 'required',
'search_status' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
return Redirect()->back()->withErrors($validator);
} else {
$user = User::find($id);
$user ->search_status = Input::get('search_status');
$user ->save();
$learn_id = Input::get('learn');
$teach_id = Input::get('teach');
$lang1 = User::find($id)->languages()->wherePivot('type', 'learn')->attach($learn_id);
$lang2 = User::find($id)->languages()->wherePivot('type', 'native')->attach($teach_id);
return redirect('/users/settings');
}
}
Является ли это правильный подход? –
@Murlidhar Я не слишком уверен, но это соответствует вашему состоянию. –