【问题标题】:Convert yii resolveNameID() method into Yii2将 yii resolveNameID() 方法转换为 Yii2
【发布时间】:2015-12-12 14:54:48
【问题描述】:

我正在尝试将Yii Jui timepicker extension 转换为 Yii2。但是我很喜欢一种在 Yii 中可用但在 Yii2 中不可用的方法,称为resolveNameID()。我在CinputWidget找到了那个方法。

但是在yii2-jui/InputWidget中找不到这个方法。

我可以在 Yii2 中部分转换以下方法,但不知道将它们放在哪里。可能在yii2-jui/InputWidget.php

resolveNameID() 在 Yii 中:

protected function resolveNameID()
{
   if($this->name!==null)
      $name=$this->name;
   elseif(isset($this->htmlOptions['name']))
      $name=$this->htmlOptions['name'];
   elseif($this->hasModel())
      $name=CHtml::activeName($this->model,$this->attribute);
   else
      throw new CException(Yii::t('yii','{class} must specify "model" and "attribute" or "name" property values.',array('{class}'=>get_class($this))));

   if(($id=$this->getId(false))===null)
   {
      if(isset($this->htmlOptions['id']))
          $id=$this->htmlOptions['id'];
      else
          $id=CHtml::getIdByName($name);
  }

    return array($name,$id);
  }

我想将上述方法转换为 Yii2 或 Yii2 中 resolveNameID() 的任何替代方法。

提前致谢。

【问题讨论】:

  • 你为什么不使用已经存在和工作的扩展:timepicker

标签: php yii yii2 yii2-extension


【解决方案1】:

我认为您应该查看此文档以获取 base helper

详细看getInputId()

为指定的属性名称或生成适当的输入 ID 表达。

getInputName()

为指定的属性名称生成适当的输入名称 或表达式。

【讨论】:

  • 谢谢。 @scaisEdge。我会试试的。
猜你喜欢
  • 2021-10-13
  • 2014-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多