ブログが表示されない、またはデータベースに正しく保存されない
P粉111641966
2023-09-01 17:46:54
<p>ブログを削除すると、完全に削除されます。新しいブログを作成できますが、Web サイトやデータベースに表示されません。これは私の BlogController です: </p>
<pre class="brush:php;toolbar:false;"><?php
名前空間 App\Http\Controllers;
アプリ\モデル\ブログを使用します。
Illuminate\Http\Request を使用します。
クラス BlogController はコントローラーを拡張します
{
/**※リソース一覧を表示します。
*
* @return \Illuminate\Http\Response*/
パブリック関数インデックス()
{
$blog = Blog::paginate(5);
return view('blogs.index', Compact('blog'))
->with('i',(request()->input('page',1)-1)*5);
}
/**※新規リソース作成フォームを表示します。
*
* @return \Illuminate\Http\Response*/
パブリック関数 create()
{
return view('blogs.create');
ブログ::create($request->all());
return redirect()->route('blogs.index')
->with('success','ブログは正常に作成されました。');
}
/*** 新しく作成したリソースをストレージに保存します。
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response*/
パブリック関数ストア(リクエスト $request)
{
$request->validate([
'タイトル' => '必須'、
'説明' => '必須'、
]);
$blog = 新しいブログ;
$blog->title = $request->title;
$blog->description = $request->description;
$blog->save();
return redirect()->route('blogs.index');
}
/**※指定されたリソースを表示します。
*
* @param \App\Blog $blog
* @return \Illuminate\Http\Response*/
public function show(ブログ $blog)
{
return view('blogs.show', Compact('blog'));
}
/**※指定したリソースを編集するためのフォームを表示します。
*
* @param \App\Blog $blog
* @return \Illuminate\Http\Response*/
パブリック関数編集(ブログ $ブログ)
{
return view('blogs.edit', Compact('blog'));
}
/*** ストレージ内の指定されたリソースを更新します。
*
* @param \Illuminate\Http\Request $request
* @param \App\Blog $blog
* @return \Illuminate\Http\Response*/
public function update(リクエスト $request、ブログ $blog)
{
$request->validate([
'タイトル' => '必須'、
'説明' => '必須'、
]);
// $blog->title = $request->title;
// $blog->description = $request->description;
$blog->fill($request);
//dd($ブログ);
return redirect()->route('blogs.index')
->with('success','ブログが正常に更新されました');
}
/**
* 指定されたリソースをストレージから削除します。*
* @param \App\Blog $blog
* @return \Illuminate\Http\Response
*/
public function destroy(ブログ $blog)
{
$blog->delete();
return redirect()->route('blogs.index')
->with('成功','ブログは正常に削除されました');
}
}</pre>
<p>問題は行 103 の public function update で発生しているようです: <code> $blog->fill($request);</code> これはデータベースにも Web ページ/ブログにも保存されません見える。その行を削除しようとしましたが、同じ結果が得られました。何も変わりません。何が問題なのかわかりません。誰か助けてくれませんか? </p>
最初のオプション
リーリーfill
メソッドを機能させるには、この後に$blog->save()
を呼び出す必要があります。また、
fill
メソッドを使用すると、一括割り当てが行われます。デフォルトでは、Laravel はフィールドの一括割り当てから保護します。#Blog.php
モデルを開き、配列
$fillableにバッチ割り当てするフィールドを追加します。 リーリー
2 番目のオプション は、update
メソッドを使用することです (最初のオプションのモデルの
$fillableにもフィールドを追加することを忘れないでください。
updateメソッドはバッチ割り当てフィールドでもあります):
リーリー3 番目のオプション は、store
メソッドで行ったのと同じように、各フィールドを 1 つずつ手動で割り当てることです。 リーリー