如何在Yii2模型类中使用javascript?

时间:2016-10-04 06:45:13

标签: php yii2 yii2-basic-app yii2-model yii2-validation

在我的模型类中的自定义验证函数中。我需要使用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代码。还有其他方法来实现它吗?

提前致谢

2 个答案:

答案 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代码与控制器进行交互。