【发布时间】:2021-01-15 11:29:25
【问题描述】:
我尝试使用验证系统插入广告,但它给了我错误:
Argument 1 passed to Illuminate\Validation\Factory::make() must be of the type array, object given, called in D:\wamp\www\pagination\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php on line 261
AdsController.php
public function store(Request $request)
{
$file = new File($request->all());
$file->user_id = Auth::user()->id;
$validator = Validator::make($file->all(), [
'category_id'=>['bail','required'],
'titre' => ['bail', 'exclude_unless:category_id,1', 'required', 'string', 'min:3', 'max:255'],
'name' => ['bail', 'exclude_unless:category_id,2', 'required', 'string', 'min:3', 'max:255'],
'last' => ['bail', 'exclude_unless:category_id,1', 'required', 'string', 'min:3', 'max:255'],
]);
File::create($validator->validated());
return Redirect::to("/")
->withSuccess('Great! file has been successfully uploaded.');
}
【问题讨论】:
-
您可能应该将
$request->all()传递给验证器,而不是$file->all()。 -
在创建您想要制作的任何模型的新实例之前进行验证
-
@ceejayoz 谢谢你的回答,但它给了我错误
General error: 1364 Field 'user_id' doesn't have a default value -
那么
Auth::user()->id可能是空的。
标签: php laravel validation