Blog tidak dipaparkan atau disimpan dengan betul dalam pangkalan data
P粉111641966
P粉111641966 2023-09-01 17:46:54
0
1
629
<p>Sebaik sahaja saya memadamkan blog, ia akan dipadam sepenuhnya. Saya boleh membuat blog baharu tetapi ia tidak akan dipaparkan di tapak web atau pangkalan data. Ini adalah BlogController saya: </p> <pre class="brush:php;toolbar:false;"><?php ruang nama AppHttpControllers; gunakan AppModelsBlog; gunakan IlluminateHttpRequest; kelas BlogController memanjangkan Pengawal { /*** Paparkan senarai sumber. * * @return IlluminateHttpResponse*/ indeks fungsi awam () { $blog = Blog::halaman(5); paparan kembali('blogs.index', compact('blog')) ->dengan('i',(permintaan()->input('halaman',1)-1)*5); } /*** Paparkan borang untuk mencipta sumber baharu. * * @return IlluminateHttpResponse*/ fungsi awam create() { return view('blogs.create'); Blog::create($request->all()); return redirect()->route('blogs.index') ->with('success','Blog telah berjaya dibuat.'); } /*** Simpan sumber yang baru dicipta dalam storan. * * @param IlluminateHttpRequest $request * @return IlluminateHttpResponse*/ kedai fungsi awam(Minta $request) { $request->validate([ 'title' => 'diperlukan', 'description' => 'diperlukan', ]); $blog = Blog baharu; $blog->tajuk = $permintaan->tajuk; $blog->penerangan = $permintaan->penerangan; $blog->simpan(); return redirect()->route('blogs.index'); } /*** Paparkan sumber yang ditentukan. * * @param AppBlog $blog * @return IlluminateHttpResponse*/ pertunjukan fungsi awam(Blog $blog) { return view('blogs.show', compact('blog')); } /*** Paparkan borang untuk mengedit sumber yang ditentukan. * * @param AppBlog $blog * @return IlluminateHttpResponse*/ edit fungsi awam(Blog $blog) { return view('blogs.edit', compact('blog')); } /*** Kemas kini sumber yang ditentukan dalam storan. * * @param IlluminateHttpRequest $request * @param AppBlog $blog * @return IlluminateHttpResponse*/ kemas kini fungsi awam (Permintaan $permintaan, Blog $blog) { $request->validate([ 'title' => 'diperlukan', 'description' => 'diperlukan', ]); // $blog->tajuk = $permintaan->tajuk; // $blog->penerangan = $permintaan->penerangan; $blog->fill($request); //dd($blog); return redirect()->route('blogs.index') ->dengan('berjaya','Blog berjaya dikemas kini'); } /** * Keluarkan sumber yang ditentukan daripada storan.* * @param AppBlog $blog * @return IlluminateHttpResponse */ fungsi awam memusnahkan(Blog $blog) { $blog->delete(); return redirect()->route('blogs.index') ->dengan('berjaya','Blog berjaya dipadamkan'); } }</pre> <p>Masalah ini nampaknya berlaku pada baris 103, kemas kini fungsi awam: <kod> $blog->fill($request);</code> nampak. Saya cuba mengalih keluar baris itu tetapi mendapat hasil yang sama. Tiada perubahan. Saya tidak faham apa masalahnya. Ada sesiapa boleh tolong? </p>
P粉111641966
P粉111641966

membalas semua(1)
P粉958986070

Pilihan pertama ialah membuat fill方法起作用,您必须在此之后调用$blog->save().

$blog->fill($request); 
$blog->save();

Selain itu, apabila anda menggunakan kaedah fill, anda sedang melakukan tugasan pukal. Secara lalai, Laravel melindungi anda daripada medan yang diberikan secara pukal.

Buka Blog.php模型,并将要批量赋值的字段添加到数组$fillable

anda
/**
 * 可以批量赋值的属性。
 *
 * @var array
 */
protected $fillable = [
    'title',
    'description',
];

Pilihan kedua ialah menggunakan kaedah update方法(不要忘记在第一种选择的模型中也添加字段到$fillable,因为update yang juga merupakan medan tugasan kelompok):

$blog->update($request);

Pilihan ketiga ialah menetapkan setiap medan secara manual satu demi satu, seperti yang anda lakukan dalam kaedah store:

$blog->title = $request->title;
 
$blog->description = $request->description;

$blog->save();
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan