我正在研究yii2。
我的_form中有一个下面的字段
$form->field($model, 'area_name')
->widget(Select2::className(),[
'data' => \common\models\AllowArea::toAreaArrayList(),
'options' => ['placeholder'=>'Select Area'],
'pluginOptions' => [
'allowClear' => true,
'multiple' => true
],
]);
?>当我试图从中选择时,我得到了
区域名必须是字符串.
GUI

下面是我的验证规则
public function rules()
{
return [
[['user_id','created_by','updated_by'], 'integer'],
[['area_name','user_id','salesman_code','city_name'], 'required'],
[['area_code', 'user_name'], 'string', 'max' => 50],
[['created_at'],'safe'],
[['area_name', 'salesman_code', 'salesman_name'], 'string', 'max' => 100],
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
];
}函数
public static function toAreaArrayList()
{
$sds = Yii::$app->sds->createCommand("Select * from Area")->queryAll();
return ArrayHelper::map(Yii::$app->sds->createCommand("select distinct AreaNameFull from Area where AreaCode NOT IN ('020201001','020202001')")->queryAll(),'AreaNameFull',function($sds, $defaultValue){
return $sds['AreaNameFull'];
});
}任何帮助都将不胜感激。
发布于 2022-10-26 13:02:05
我刚把area_name从[['area_name', 'salesman_code', 'salesman_name'], 'string', 'max' => 100],移到[[ 'salesman_code', 'salesman_name'], 'string', 'max' => 100],,它就开始工作了。
发布于 2022-10-26 13:07:08
选择2小部件以多模式初始化。这意味着结果是一个数组。
如果它不是想要的行为,只需删除'multiple' => true。
否则,表单的字段规则应该是
['area_name', 'each', 'rule' => ['string', 'max' => 100]],https://stackoverflow.com/questions/74207638
复制相似问题