在Laravel的資料庫操作錯誤的資料更新
P粉336536706
P粉336536706 2023-08-07 20:33:01
0
1
381

以下是我模型中的函數程式碼:

public function updateAnime(Request $request) { $updatedFields = []; $請求->驗證([ '標題' => ['必需的'], '發布日期' => ['必需', '整數'], '作者' => ['必需的'], '工作室' => ['必需的'], '描述' => ['必需的'], ]); $request->release_date = (int)$request->release_date; $animeInfo = Anime::where('title', $request->oldTitle)->with('authors', 'studios')->first(); $author = Author::firstOrCreate(['author' => $request->author]); 作者動漫::哪裡([ ['作者', $animeInfo->authors[0]->author], ['動漫', $request->oldTitle] ])->更新([ '作者' => $作者->作者, '動漫' => str_replace(' ', '-', $request->標題) ]); $studio = Studio::firstOrCreate(['studio_name' => $request->studio]); 工作室動漫::哪裡([ ['工作室', $animeInfo->studios[0]->studio_name], ['動漫', $request->oldTitle] ])->更新([ '工作室' => $studio->studio_name, '動漫' => str_replace(' ', '-', $request->標題) ]); 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(); 返回$anime->updateAnime($request);

問題是,它更新相關的表StudioAnime和AuthorAnime,它也在表Studio和動畫中創建新的數據,但它不會更新表動漫。兄弟們,為啥這樣,該怎麼解決

當在我以前的代碼我只是更新數據沒有檢查它的變化都工作

< br />

$animeInfo->update([ 'title' => str_replace(' ', '-',$request->title), 'poster' => $animeInfo->poster, 'description' => $request->description, 'release_date' => $request->release_date, 'trailer' => $animeInfo->trailer, ]); return response()->json(['message' => 'Data was updated successuflly']);```


P粉336536706
P粉336536706

全部回覆 (1)
P粉533898694

不能用property_exist()函數取得列名,因為這些屬性不能直接作為Model物件中的屬性存取。

要檢查這個,試試在tinker:


dd(User::first())

我的建議是,用attributesarray()或getAttributes()方法與array_keys()結合,得到模型的屬性名稱數組,這不就搞定了嗎:

$animeAttributes = array_keys($animeInfo->getAttributes()); foreach ($request->all() as $key => $value) { if (in_array($key, $animeAttributes)) { /* ... */
    最新下載
    更多>
    網站特效
    網站源碼
    網站素材
    前端模板
    關於我們 免責聲明 Sitemap
    PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!