自定义行为
class MyBehavior extends ActionFilter
{
private $_prop2;
public $pro1;
protected $c;
public function getProp2()
{
return $this->_prop2;
}
public function setProp2($value)
{
$this->_prop2 = $value;
}
public function beforeAction($action)
{
var_dump(111);
return true;
}
public function isGuest()
{
return Yii::$app->user->isGuest;
}
}
控制器
public function behaviors()
{
return [
'myBehavior'=> MyBehavior::className(),
'verbs'=>[
'class'=>VerbFilter::className(),
'actions'=>[
'delete' => ['POST'],
],
]
];
}
beforeaciton 方法的确可以被调用,但是行为下的公共方法无法被调用
不知道你是怎么调用的,像下面这样调用肯定没有问题。
在控制器的操作方法中调用过滤器的getName方法
就是$this->行为类下的公共方法 的确调用不了显示找不到这个方法
群内调试后发现,你犯了一个非常基本的错误,方法的调用用 $this->isGuest(),而不是 $this->isGuest