在Laravel中创建应用程序时遇到此问题。用户需要能够编辑帖子,但是当单击“编辑”按钮时,它只会更新创建的第一个帖子。无法访问其他帖子。我如何使它更新我按下按钮后的确切位置。这可能是什么问题?
edit.blade.php
<form action="/profile/{{ $post->id }}" enctype="multipart/form-data" method="post">
@csrf
@method('PATCH')
...edit form here...
web.php
Route::patch('/profile/{post}', 'PostsController@update')->name('profile.update');
PostsController.php
public function update(Post $post)
{
$data = request()->validate([
'category' => 'required',
'description' => 'required',
'price' => 'required',
'image' => 'image',
]);
$post->update($data);
return redirect("/profile/".auth()->user()->id);
}
帖子模型 命名空间应用;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $guarded = [];
public function user()
{
return $this->belongsTo(User::class);
}
}
答案 0 :(得分:2)
我想你必须先找到它 像这样
$post = Post::find($post->id);
$post->update($data);