Rumah  >  Soal Jawab  >  teks badan

Blog tidak dipaparkan atau disimpan dengan betul dalam pangkalan data

<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粉111641966P粉111641966436 hari yang lalu598

membalas semua(1)saya akan balas

  • P粉958986070

    P粉9589860702023-09-02 00:26:46

    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();

    balas
    0
  • Batalbalas