laravel验证,存储并上传uniques值,尝试获取非对象的属性



我使用laravel 8

我想验证数据,并使用一个表单请求存储和更新它们。

我使用CCD_ 1来更新唯一数据。

对于更新,它起作用了,但当我想存储新记录时,会给我错误

Trying to get property 'id' of non-object

这是我的StorePostRequest:


public function rules()
{
return [
'user_id'=>['required'],
'category_id'=>['required'],
'title'=>['required','max:20' ,Rule::unique('posts')->ignore($this->post->id)],
'body'=>['required'],
'picture'=>['required'],
'study_time'=>['required' ,'numeric' , 'max:'],
'tags'=>['required'],
'status'=>['required'],
];
}
public function message(){

$message=[
'user_id.required'=>'لطفا نام نویسنده نظر را وارد کنید',
'category_id.required'=>'لطفا مجموعه مورد نظر را انتخاب کنید',
'title.required'=>'لطفا عنوان را وارد کنید',
'body.required'=>'لطفا توضیحات را وارد کنید',
'picture.required'=>'لطفا تصویر را وارد کنید',
'study_time.required'=>'لطفا زمان مطالعه را وارد کنید',
'tags.required'=>'لطفا تگ را انتخاب کنید' ,
'status.required'=>'لطفا وضعیت را انتخاب کنید',
];
return array_merge(parent::messages(), $message);
}
}

我怎样才能欺骗它?感谢你的帮助:*

我认为问题可能在这里

$this->post->id

所以试试这个

$post->id

或者

$this->post['id']

我希望它能起作用!

public function rules()
{
$rules = [
'user_id'=>['required'],
'category_id'=>['required'],
'body'=>['required'],
'picture'=>['required'],
'study_time'=>['required','numeric'],
'tags'=>['required'],
'status'=>['required'],
];
if($this->method() == 'POST'){
$rules['title'] = ['required','max:20', Rule::unique('posts')];
}else{
$rules['title'] = ['required','max:20' ,Rule::unique('posts')->ignore($this->post->id)];
}
return $rules;
}

最新更新