【发布时间】:2020-03-31 19:25:46
【问题描述】:
我是 Laravel 的新手。我正在使用 laravel 5.4 并尝试验证和更新模型中的数据。代码如下所示:
路线
Route::resource ('contribution-structure', 'ContributionStructureController');
ContributionStructureController
public function update(Request $request, $id)
{
//
$data = $this->validate($request, [
'employer_name' => 'required|min:3',
]);
$plansubmission = PlanSubmission::find($id);
$plansubmission->update($data);
}
验证有效,但是当我更新时,我收到一条错误消息:
传递给 Illuminate\Database\Eloquent\Model::update() 的参数 1 必须 是数组类型,给定 null,调用 C:\xampp\htdocs\tapp\app\Http\Controllers\ContributionStructureController.php 在第 84 行并定义
【问题讨论】:
-
您为什么使用 5.4 而不是当前的 6.x?我知道在旧版本的 Laravel 中没有返回任何东西(但我不确定它是什么时候添加的),这就是我认为这里发生的事情。更新到最新版本,这个问题应该会消失。
-
为什么不
$plansubmission-> employer_name = $request ->only('employer_name')这样使用?? -
@A.ANoman 必须是
$plansubmission->employer_name = $request ->get('employer_name'); $plansubmission->save()。由于only()返回一个数组,你需要确保之后保存模型,updated()会自动完成。
标签: laravel