melomaniac
(Melomaniac2012)
April 4, 2016, 8:19am
1
В общем нужно изменить slug перед сохранением в БД. Пишу
[
'class' => SluggableBehavior::className(),
'attribute' => 'name',
'slugAttribute' => 'slug',
// 'immutable' => true,
// 'ensureUnique'=>true,
'value' => function( $event ) {
return 'test';
},
],
В итоге получаю то что было в name, а должно быть ‘test’
melomaniac
(Melomaniac2012)
April 4, 2016, 11:07am
2
melomaniac:
В общем нужно изменить slug перед сохранением в БД. Пишу
[
'class' => SluggableBehavior::className(),
'attribute' => 'name',
'slugAttribute' => 'slug',
// 'immutable' => true,
// 'ensureUnique'=>true,
'value' => function( $event ) {
return 'test';
},
],
В итоге получаю то что было в name, а должно быть ‘test’
Из доки http://www.yiiframework.com/doc-2.0/yii-behaviors-sluggablebehavior.html#$value-detail
The value that will be used as a slug. This can be an anonymous function or an arbitrary value. If the former, the return value of the function will be used as a slug. The signature of the function should be as follows,
function ($event)
{
// return slug
}
Должно ведь работать, а оно не работает
melomaniac
(Melomaniac2012)
April 4, 2016, 11:58am
3
Сам спросил, сам и отвечаю
[
'class' => SluggableBehavior::className(),
// 'attribute' => 'name', Комментим строку, иначе не работает
// 'slugAttribute' => 'slug',
// 'immutable' => true,
// 'ensureUnique'=>true,
'value' => function( $event ) {
if(!empty($event->sender->slug))
{
return $event->sender->slug;
}
return \yii\helpers\Inflector::slug($event->sender->name);
},
],
Может кому еще пригодится