This forum has moved to a new location and is in read-only mode. Please visit talk.octobercms.com to access the new location.
Hi, I need your help on how to put a validation on a form field relationship. I've been spending a few hours already but don't have any luck.
So, I have 2 models Meta
and Page
. In which page
model has one meta
. So what I'm planning to do is to put a validation of one the of the field from Meta model which is the title
Page.php Model
public $rules = [
'page_name' => 'required',
'slug' => 'required',
'title' => 'required',
];
public $hasOne = [
'meta' => ['proj\Meta\Models\Meta', 'key' => 'page_id'],
];
Page fields.yml
fields:
page_name:
label: Page Name
span: auto
type: text
required: 1
slug:
label: Slug
span: auto
type: text
required: 1
readOnly: true
tab: 'Page Url'
'meta[title]':
label: 'Meta Title'
span: auto
type: text
required: 1
'meta[description]':
label: 'Meta Title'
span: auto
type: text
in my validation $rules
it seems the title
field is not working properly. Would be greatly appreciated if someone share an idea about the validation. Thank you
Hi @mjauvin thank you for your reply, i tried using this
`'meta.title' => 'required'`
seems still have no luck, still showing the error like The title field is required
, even though the field has a value
You have to set the validation rules on the Meta model itself.
So
$rules = [
'title' => 'required',
'description' => 'required',
];
@LukeTowers, it can be done using your way. However, the Meta
model is sharable across the plugin and there will be an issue with other plugins that use that Model, which having that field but is not required
or mandatory. So, I'm thinking if possible to have the validation on that field in my Page
model only.
Maybe you could add the rule to the Meta model dynamically using the Pages controller beforeValidate method?
Or manually check this like in this forum thread:
https://octobercms.com/forum/post/conditional-backend-form-input-validation-on-other-input-field
1-7 of 7