Adding fields to create modal
Hi, i need the permalink to also take the last name, cause right now it takes just the first name, but i don't know how to pass the last name. Any ideas how can i achieve this?
public function getCreateForm(): Form
{
return Form::make([
Input::make()
->name('first_name')
->label('First Name')
->translatable()
->onChange('formatPermalink'),
Input::make()
->name('last_name')
->label('Last Name')
->translatable()
->onChange('formatPermalink'),
Input::make()
->name('slug')
->label(twillTrans('twill::lang.modal.permalink-field'))
->translatable()
->ref('permalink')
->prefix($this->getPermalinkPrefix($this->getPermalinkBaseUrl()))
]);
}
6 Replies
@oxana do you need your users to be able to update that slug? If not, I recommend not using the slug field
And use an accessor to generate the slug from both
If you do need users to have control over the slug, you'll need a custom vue component in this case
Or rather, a custom formatPermalink function
yes the user can update the slug.
is the function suppose to be something like this
Route::get('page-route/{id}', function() {...})->name('page.detail');
Method implementation
protected function formData($request)
{
if ($request->route('page')) {
return [
'customPermalink' => route('page.detail', ['id' => $request->route('page')]),
];
}
return [];
}
No, why would it use the id if you want the slug?
no, I'm saying for the logic is it kinda the same?
not really. For the slug to generate using multiple fields you need to define an accessor in your model, and use that accessor name in slugAttributes instead of title (or fiest_name in your case).
then use
first_name
in $slugAttributes
that way it will generate the slug using the concatenation of both fields. but the thing is this is incompatible with the user editable slug field.
that's why, in combination to this, if you want the slug field in the create modal to concatenate automatically on the fly, you'll need some additional JavaScript
this is a common use case though, so this might be an opportunity for us to solve it in the corei get it now, I'll give it a try. Thank you for explaining this to me, i appreciate it!Glad to have you here!