1
我有3級表的用戶,語言和Language_User,如下圖所示:更新透視表 - Laravel
用戶
ID
名
...
語言
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);
OR
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我不太確定,但它適合你的條件。 –