Field conditions can be used to display fields when a model attribute has a certain value. Individual fields or field groups can be made dependent on model values.
The following example shows an input field that only gets displayed if model
attribute type
has the value news
:
$form->select('type')
->options([
'news' => 'News',
'blog' => 'Blog',
])
->title('Type');
$form->input('news_title')
->title('Title')
->when('type, 'news');
A variety of conditions are available for any field:
Condition | Description |
---|---|
$field->when('type', 'foo') |
Matches the exact given value. |
$field->whenNot('type', 'foo') |
When field doesn't match the given value. |
$field->whenContains('type', 'foo') |
Matches the given substring or array value. |
$field->whenNotContains('type', 'foo') |
When field doesn't contain the given value. |
$field->whenIn('type', ['foo', 'bar']) |
When field is any of the given values. |
$field->whenNotIn('type', ['foo', 'bar']) |
When field is not any of the given values. |
Conditions can also be applied to groups:
$form->group(function($form) {
$form->input('news_title')->title('Title');
$form->input('news_text')->title('Text');
})->when('type', 'news');
You may chain as many conditions in a row by adding or
to the desired
condition:
$form->input('title')->title('Title')
->when($field, 'news')
->orWhen($field, 'blog');