I try to create simple module in pyrocms, and now I create public form where we input name and description, but slug is skipField and is generated from name. At this moment I need to change the "slug generator" to add suffix for example '-'.uniqid().
My code view like this:
public function save(AdvertFormBuilder $form)
{
$form->skipField('slug');
$form->setOption('redirect', 'dodaj-ogloszenie/potwierdzenie');
$form->setOption('redirect_error', 'dodaj-ogloszenie');
$form->build();
$form->validate();
if($form->hasFormErrors()){
return redirect($form->getOption('redirect_error'));
}else{
$form->saveForm();
return redirect($form->getOption('redirect'));
}
...
Now I need to change this slug like $_POST['name'].'-'.uniqid(). I try this by:
$form->getFormField('slug')->setValue($form->getFormField('name')->value.'-'.uniqid());
dd($form->getFormField('slug'));exit;
but it not work :(
Update1
The stream file:
/**
* The stream definition.
*
* @var array
*/
protected $stream = [
'slug' => 'adverts',
'title_column' => 'name',
'translatable' => true,
'trashable' => false,
'searchable' => false,
'sortable' => false,
];
/**
* The stream assignments.
*
* @var array
*/
protected $assignments = [
'name' => [
'translatable' => true,
'required' => true,
],
'slug' => [
'unique' => true,
'required' => true,
],
'category' => [
'required' => true,
],
];
and form build file:
/**
* The form fields.
*
* @var array|string
*/
protected $fields = [
'name' => [
'translatable' => true,
'required' => true,
'unique' => true,
],
'slug' => [
'required' => true,
'unique' => true,
'config' => [
'slugify' => 'name',
],
],
'category' => [
'required' => true,
],
];
Module migration:
Adverts stream migration:
And categories stream migration:
The slug should automatically be typed when you type name.