Laravelデータベース操作での誤ったデータ更新
P粉336536706
P粉336536706 2023-08-07 20:33:01
0
1
390

以下は我モデル中の関数数代コード:

パブリック関数 updateAnime(Request $request) { $updatedFields = []; $request->validate([ 'タイトル' => ['必須']、 'リリース日' => ['必須', '整数'], '著者' => ['必須']、 'スタジオ' => ['必須']、 '説明' => ['必須']、 ]); $request->リリース日 = (int)$request->リリース日; $animeInfo = Anime::where('title', $request->oldTitle)->with('authors', 'studios')->first(); $author = 著者::firstOrCreate(['author' => $request->author]); 著者アニメ::どこ([ ['作者', $animeInfo->authors[0]->author], ['アニメ', $request->oldTitle] ])->update([ '著者' => $author->著者、 'アニメ' => str_replace(' ', '-', $request->title) ]); $studio = Studio::firstOrCreate(['studio_name' => $request->studio]); スタジオアニメ::どこ([ ['スタジオ', $animeInfo->studios[0]->studio_name], ['アニメ', $request->oldTitle] ])->update([ 'スタジオ' => $スタジオ->スタジオ名, 'アニメ' => str_replace(' ', '-', $request->title) ]); foreach ($request->all() as $key =>$value) { if (property_exists($animeInfo, $key)) { if ($request->$key != $animeInfo->$key) { $updatedFields[$key] = $request->$key; } } } $animeInfo->update($updatedFields); return response()->json(['message' => 'データは正常に更新されました。n 更新されたデータ: ' . implode(', ', array_keys($updatedFields))]); }

制御制器代码:

$anime = new Anime(); return $anime->updateAnime($request);

問題は、関連する表スタジオアニメとオーサーアニメは更新されますが、表スタジオとアニメーションでは新しいデータが作成されますが、アニメーションは更新されないことです。皆さん、なぜこれが起こっているのか、そしてその解決方法

前のコードで、変更を確認せずにデータを更新しただけでは、すべてうまくいきました

< br />

$animeInfo->update([ 'title' => str_replace(' ', '-',$request->title), 'ポスター' => $animeInfo->ポスター, '説明' => $request-> 説明, 'リリース日' => $request->リリース日, '予告編' => $animeInfo-> 予告編, ]); return response()->json(['message' => 'データは正常に更新されました']);```


P粉336536706
P粉336536706

全員に返信 (1)
P粉533898694

これらのプロパティは Model オブジェクトのプロパティとして直接アクセスできないため、property_exist() 関数を使用して列名を取得することはできません。

これを確認するには、tinker:


を試してください。 リーリー

私の提案は、attributesarray() または getAttributes() メソッドを array_keys() と組み合わせて使用し、モデルの属性名の配列を取得することです。 リーリー

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!