如何在Yii中定义可调用变量

时间:2014-08-21 07:08:04

标签: php yii yii2

当我使用yii \ filters \ auth \ HttpBasicAuth时,

我想自定义public $auth @var可调用,以便我可以像这样使用它:

$identity = call_user_func($this->auth, $username, $password);

但如何使用下面的代码定义它?

以下代码是此callable的典型实现:

function ($username, $password) {
    return \app\models\User::findOne([
        'username' => $username,
        'password' => $password,
    ]);
}

为什么我不能像这样定义它(错误报告)

public $auth=function ($username, $password) {
    return \app\models\User2::findOne([
        'username' => $username,
        'password_hash' => $password,
]);

1 个答案:

答案 0 :(得分:0)

记得要恰当地命名这个功能。而不是调用变量调用函数,或者如果需要添加功能,则扩展函数

public functionAuth ($username, $password) {
    return \app\models\User2::findOne([
        'username' => $username,
        'password_hash' => $password,
]);

另外,我不建议编辑yii文件,我总是会创建一个新功能来扩展它,然后添加你之后的自定义