我在tuts +上关注Programming with YII2 tutorial但是当我完成章节Programming With Yii2: Sluggable Behavior并尝试访问/status/
页面时,我会看到下一条错误消息
我连接到SluggableBehavior的模型
namespace app\models;
use Yii;
use yii\behaviors\SluggableBehavior;
class Status extends \yii\db\ActiveRecord
{
const PERMISSIONS_PRIVATE = 10;
const PERMISSIONS_PUBLIC = 20;
public function behaviors()
{
return [
[
'class' => SluggableBehavior::className(),
'attribute' => 'message',
// 'slugAttribute' => 'slug',
],
];
}
. . .
我做错了什么?我在yii2目录中阅读了SluggableBehavior类中的权威指南和使用示例,但没有找到任何特殊内容。
答案 0 :(得分:3)
经过几个小时阅读有关yii2和缓慢行为的文档和论坛后,我找到了我需要的东西。
我指定value
属性,一切正常:
'value' => function($event){
if(!empty($event->sender->slug))
return $event->sender->slug;
return Inflector::slug($event->sender->title);
},
答案 1 :(得分:0)
在你的情况下它是正确的,但我有同样的问题,但出于其他原因。我试图合并父行为和当前模型行为,并错误地忘记了一个级别括号 public function behaviors() {
return array_merge(parent::behaviors(),
[ // <-- forgot this brackets
[
'class'=> \yii\behaviors\SluggableBehavior::className(),
'attribute'=> ['singleTranslation.title'],
'immutable' => true,
'ensureUnique' => true,
//'slugAttribute' => 'slug'
]
] // <-- forgot this brackets
);
}
{{1}}