Php Yii2 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', ], ]; } . . .
我将继续学习tuts+,但当我完成本章并尝试访问Php Yii2 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', ], ]; } . . .,php,yii2,yii2-basic-app,Php,Yii2,Yii2 Basic App,我将继续学习tuts+,但当我完成本章并尝试访问/status/页面时,我会看到下一条错误消息 我连接到SluggableBehavior的模型 namespace app\models; use Yii; use yii\behaviors\SluggableBehavior; class Status extends \yii\db\ActiveRecord { const PERMISSIONS_PRIVATE = 10; const PERMISSIONS_PUB
/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',
],
];
}
. . .
我做错了什么?我阅读了Yi2目录中SluggableBehavior类的权威指南和使用示例,但没有发现任何特别之处。在阅读了几个小时关于Yi2和sluggable行为的文档和论坛后,我找到了我需要的
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',
],
];
}
. . .
我指定值
属性,所有工作正常:
'value' => function($event){
if(!empty($event->sender->slug))
return $event->sender->slug;
return Inflector::slug($event->sender->title);
},
在你的情况下,这是正确的,但我有相同的问题,但出于其他原因。我试图合并父行为和当前模型行为,但错误地忘记了一级括号
[]
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
);
}
公共功能行为(){
返回数组_merge(父::行为(),
[/\yii\behaviors\SluggableBehavior::className(),
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',
],
];
}
. . .
'attribute'=>['singleTranslation.title'],
“不可变”=>true,
“ensureUnique”=>正确,
//“slugAttribute”=>“slug”
]
]//我找不到任何使用此行为指定了'value'
的示例,这非常奇怪