gpt4 book ai didi

php - Laravel Framework 中的更新正在返回一条新记录

转载 作者:行者123 更新时间:2023-12-04 14:47:11 24 4
gpt4 key购买 nike

我是 PHP 和 Laravel 的新手。我学到了很多东西,但我在看到我在本应是一项简单任务的错误时遇到了问题。

我有一个从 MySQL 数据库中的数据填充的表单。当我提交它时,它会创建一条新记录而不是更新现有记录。这是我正在使用的表单操作:

 <form action="{{route('updateAlert', $alert->id)}}" method="post" name="saveAlert" id="saveAlert" class="needs-validation"
@csrf
@method("PUT")
///form fields here
</form>

这是两条相关的路线。 editAlert 将您带到上面的表格。 updateAlert 应该会将您带到我的 AlertController 上的更新方法。

Route::get('/alerts/edit/{id}', 'AlertController@edit')->name('editAlert');
Route::put('/alerts/edit/{id}', 'AlertController@update')->name('updateAlert');

这是我的 AlertController 的样子:

/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/

public function update(Request $request, Alert $alert)
{
$alert->type = $request->type;
$alert->title = $request->title;
$alert->body = $request->body;
$alert->link = $request->link;
$alert->eff_dt = Carbon::parse($request->eff_dt);
$alert->exp_dt = Carbon::parse($request->exp_dt);
$alert->note = $request->note;
$alert->user_id = auth()->user()->id;
$alert->save();

return redirect()->route('viewAlerts')->with('success', 'Your alert has been updated.');

}

我错过了什么?我在按预期工作的应用程序的另一部分中有相同的基本代码。提前致谢。

最佳答案

您没有获取您的行 ID。您需要使用模型并将您的 ID 传递给您的模型以更新任何特定行。

例。我的型号名称只是传递您的型号名称。

    public function update(Request $request, Alert $alert)
{
$alert = ModelName::find($alert);
$alert->type = $request->type;
$alert->title = $request->title;
$alert->body = $request->body;
$alert->link = $request->link;
$alert->eff_dt = Carbon::parse($request->eff_dt);
$alert->exp_dt = Carbon::parse($request->exp_dt);
$alert->note = $request->note;
$alert->user_id = auth()->user()->id;
$alert->save();
return redirect()->route('viewAlerts')->with('success', 'Your alert has been updated.');

}

关于php - Laravel Framework 中的更新正在返回一条新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69818866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com