I use laravel 8
I want to validate data and use one form request for store and update them.
I use ignore($this->post->id)
for update unique data.
For update it worked, but when I want to store a new record, gives me error
Trying to get property 'id' of non-object
this is my 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);
}
}
How can I fix it?
I think the issue may be here
$this->post->id
so try this instead
$post->id
or That
$this->post['id']