如何解决设置未知属性:yii\validators\NumberValidator::0
我尝试调用一个设置表单,该表单显示用于将数据保存到价格数据库中的输入表单。
我的模型在渲染过程中抛出上述异常:
未知属性 – yii\base\UnknownPropertyException
设置未知属性:yii\validators\NumberValidator::0
_price-item 行中的错误:
$form->field($model,"[{$i}]credits")->textInput(['maxlength' => 8])
型号:
<?php
namespace app\models;
use Yii;
/**
* @package app\models
*
* @property integer $id
* @property integer $credits
* @property integer $price
* @property integer $reduced_price
* @property integer $discount
* @property string $start
* @property string $end
* @property integer $active
*/
class Price extends \app\base\ActiveRecord
{
public function rules()
{
return [
[['credits'],'integer','required'],[['price'],'integerOnly' => false,'required','min' => 0,'max' => 10000],[['reduced_price','discount'],[['start','end'],'format' => 'php:Y-m-d H:i:s'],[['active'],'integer'],'in','range' => array_keys(self::$_CONDITIONS)],];
}
}
小工具:
<?php DynamicFormWidget::begin([
'widgetContainer' => 'wrapper-prices','widgetBody' => '.container-items','widgetItem' => '.item','limit' => 30,'min' => 1,'insertButton' => '.add-item','deleteButton' => '.remove-item','model' => count($prices) ? $prices[0] : new \app\models\Price(),'template' => $this->render('_price-item',[
'i' => 0,'form' => $form,]),'formId' => 'dynamic-form','formFields' => [
'credits','price','reduced_price','discount','start','end','active',],]); ?>
mysql:
CREATE TABLE `price` (
`id` int(11) NOT NULL,`credits` int(11) NOT NULL,`price` float NOT NULL,`reduced_price` float DEFAULT NULL,`discount` float DEFAULT NULL,`start` datetime DEFAULT NULL,`end` datetime DEFAULT NULL,`active` smallint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
谁能告诉我,怎么了? 我的头都快被烫到了
解决方法
这是你的前两条规则
GS
您在一个错误的规则中设置了 2 个核心验证器 [['credits'],'integer','required'],[['price'],'integerOnly' => false,'required','min' => 0,'max' => 10000],
、integer
。例如,integer
验证器采用 required
或 max
参数并将其作为关联数组 min
,并分配诸如 'min'=>10
之类的属性值,以及您的代码会强制整数验证器将 $obj->min=10
解释为 'required'
,这清楚地解释了上述错误。
未知属性 – yii\base\UnknownPropertyException 设置未知属性:yii\validators\NumberValidator::0
改变你的规则方法
0=>'required'
更新
你的第四条规则也会抛出错误应该是
public function rules()
{
return [
[['credits','price'],[['reduced_price','discount'],[['start','end'],'datetime','format' => 'php:Y-m-d H:i:s'],[['active','credits'],'integer'],[['active'],'in','range' => array_keys(self::$_CONDITIONS)],];
}
我也更新了上面的代码块。
,正确的工作规则是:
感谢穆罕默德
public function rules()
{
return [
[['credits',[['price','reduced_price','format' => 'php:Y-m-d'],[['status',[['status'],];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。