Pyrocms改变鼻涕虫



我试图在pyrocms中创建一个简单的模块,现在我创建了一个公共表单,我们在其中输入名称和描述,但slug是skipField,是根据名称生成的。此时,我需要更改"段塞生成器"以添加后缀,例如'-'.uniqid()

我的代码视图如下:

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'));
}
...

现在我需要像$_POST['name'].'-'.uniqid()一样改变这个鼻涕虫。我试试这个:

$form->getFormField('slug')->setValue($form->getFormField('name')->value.'-'.uniqid());
dd($form->getFormField('slug'));exit;

但它不起作用:(


更新1

流文件:

/**
* 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,
],
];

和表单构建文件:

/**
* 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,
],
];

模块迁移:

use AnomalyStreamsPlatformDatabaseMigrationMigration;
use DefrAdvertsModuleCategoryCategoryModel;
class DefrModuleAdvertsCreateAdvertsFields extends Migration
{
/**
* The addon fields.
*
* @var array
*/
protected $fields = [
'name'     => 'anomaly.field_type.text',
'slug'     => [
'type'   => 'anomaly.field_type.slug',
'config' => [
'slugify' => 'name',
'type'    => '-',
],
],
'category' => [
'type'   => 'anomaly.field_type.relationship',
'config' => [
'mode'    => 'lookup',
'related' => CategoryModel::class,
],
],
];
}

广告流迁移:

class DefrModuleAdvertsCreateAdvertsStream extends Migration
{
/**
* The stream definition.
*
* @var array
*/
protected $stream = [
'slug'         => 'adverts',
'title_column' => 'name',
'searchable'   => true,
'trashable'    => true,
];
/**
* The stream assignments.
*
* @var array
*/
protected $assignments = [
'name' => [
'required' => true,
],
'slug' => [
'required' => true,
'unique'   => true,
],
'category',
];
}

和类别流迁移:

class DefrModuleAdvertsCreateCategoriesStream extends Migration
{
/**
* The stream definition.
*
* @var array
*/
protected $stream = [
'slug'         => 'categories',
'title_column' => 'name',
];
/**
* The stream assignments.
*
* @var array
*/
protected $assignments = [
'name' => [
'required' => true,
],
'slug' => [
'required' => true,
'unique'   => true,
],
];
}

键入名称时应自动键入段塞。

最新更新