在我的模型类中的自定义验证函数中。我需要使用javascript代码。因为我使用了registerJs函数,但我收到错误: -
调用未定义的函数registerJs()
我也试过通过包含View类来调用它,即View::registerJs()
,但它也给出了一个名为
Non-static method yii\web\View::registerJs() should not be called statically, assuming $this from incompatible context
如何在Yii2模型类中使用Javascript。
编辑: 我已经为手机号码验证创建了一个自定义函数,并从模型的规则部分调用该函数。现在我想在该函数中使用javascript代码。还有其他方法来实现它吗?
提前致谢
答案 0 :(得分:1)
该方法不是静态的。如果您打开框架的view.php
,则可以查看实施情况。
public function registerJs($js, $position = self::POS_READY, $key = null){..
}
异常明确提到should not be called statically
因为它没有被声明为静态。
我见过几个将此方法称为:
的实现$view->registerJs($js, $view::POS_END);
基本上在其中一个函数中加载特定的JS文件。
答案 1 :(得分:0)
将Javascript与模型一起使用并不是一个好主意。如果你这样做,那么可能在一段时间后你会发现你正在解决应用程序架构的大问题。
最好的方法是在控制器内调用模型,然后通过Javascript代码与控制器进行交互。