【发布时间】:2019-02-07 15:57:45
【问题描述】:
验证器规则时遇到问题
return [
'features' => 'required|array',
'features.*' => 'required|string',
'link' => 'required|url',
'image' => 'nullable|file|image|mimes:jpeg,png,gif,webp|max:2048',
];
返回一个错误,即字段是必需的,即使它们存在。 我不明白是什么导致了问题。我使用相同的验证进行存储,并且效果很好。
这是我的控制器的代码
public function update(UpdateSite $request, Site $site)
{
$validatedData = $request->validated();
if ($validatedData['image']) {
Storage::delete($site->path);
$imagePath = $validatedData['image']->store('thumbnails');
$interventedImage = Image::make(Storage::url($imagePath));
$interventedImage->resize(500, null, function ($constraint) {
$constraint->aspectRatio();
});
$interventedImage->save('storage/'.$imagePath);
$site->update([
'path' => $imagePath,
]);
}
$site->update([
'site_link' => $validatedData['link'],
]);
$site->features()->delete();
if ($validatedData['features']) {
foreach ($validatedData['features'] as $feature) {
$site->features()->save(new SiteFeature(["feature" => $feature]));
}
}
return $this->response->item($site, new SiteTransformer);
}
更新 #1
我的路线
$api->put('sites/{id}', 'SiteController@update')->where(['id' => '\d+']);
【问题讨论】:
-
用json请求测试看看是请求问题还是验证问题
-
@Hussein 刚刚创建了一个
return var_dump($request->all()),它似乎是空的。我无法理解数据丢失的位置 -
您确定该字段名称
features[0]吗? -
@Hussein 是的。尽管如此,根据错误消息
link也是空的 -
能否包含验证和定义规则的完整代码?
标签: php laravel crud dingo-api