Saya baru menggunakan Laravel dan saya mempelajarinya daripada Laracast. Inilah masalah saya, saya sedang mencipta borang komen dan kod phpnya kelihatan seperti ini:
<section class="col-span-8 col-start-5 mt-10 space-y-6"> <!-- Post form --> <form method="POST" action="/post/{{ $post->slug }}/comments" class="border border-gray-200 p-6 rounded-xl"> @csrf <header class="flex items-center"> <img src="https://i.pravatar.cc/100?id={{ auth()->id() }}" alt="" width="40" height="40" class="rounded-full"> <h2 class="ml-3 ">Want to participate?</h2> </header> <div class="mt-6"> <textarea class="w-full text-sm focus:outline-none focus:ring" name="body" cols="30" rows="10" placeholder="Quick,think of something to say!" ></textarea> </div> <div> <button type="submit" class="bg-blue-500 text-white uppercase font-semi-bold text-xs py-2 px-10 rounded-2xl hover:bg-blue-600">Post</button> </div>
Ini ialah laluan yang sepadan:
Route::post('post/{post:slug}/comments',[PostCommentsController::class, 'store']);
Pengawal:, Saya syak mungkin ada masalah di sini 'user_id'=> request()->user()->id
,我尝试了多种方法来实现这种方法,例如 auth()-> id, Auth::user()->id
<?php namespace AppHttpControllers; use AppModelsPost; class PostCommentsController extends Controller { public function store(Post $post){ request()->validate([ 'body'=>'required' ]); $post->comments()->create([ 'user_id'=> request()->user()->id, 'body' => request('body') ]); return back(); } }
Ini ialah jadual migrasi untuk ulasan
Schema::create('comments', function (Blueprint $table) { $table->id(); $table->foreignId('post_id')->constrained()->cascadeOnDelete(); $table->foreignId('user_id')->constrained()->cascadeOnDelete(); $table->text('body'); $table->timestamps();
Jadual migrasi selepas:
Schema::create('posts', function (Blueprint $table) { $table->id(); $table->foreignId('user_id')->constrained()->cascadeOnDelete(); $table->foreignId('category_id'); $table->string('slug')->unique(); $table->string('title'); $table->text('excerpt'); $table->text('body'); $table->timestamps(); $table->timestamp('published_at')->nullable(); });
Jika saya mengklik butang terbitkan saya mendapat ralat di atas, saya cuba sedaya upaya untuk membetulkannya tetapi saya tidak dapat menyelesaikannya. Bolehkah seseorang membantu saya apa yang salah dengan kod saya? Soalan saya mungkin kelihatan naif kerana saya baru dalam komuniti stackoverflow
Gunakan kod ini untuk pengawal anda
Pengguna mesti log masuk