Yii2从表单中删除可选的已创建字段

时间:2018-01-23 08:21:45

标签: php yii2 yii2-model

我有一个带有属性id,name,创建的“BTeam”模型类。我用Gii生成了这个。

我添加了“TimestampBehavior”,它在模型创建期间使用当前时间戳填充“已创建”字段。

如何从“添加”页面中删除该字段:

enter image description here

我的BTeam课程:

<?php

namespace app\models;

use Yii;
use yii\db\ActiveRecord;

class BTeam extends \yii\db\ActiveRecord
{
/**
 * @inheritdoc
 */
public static function tableName()
{
    return 'b_team';
}

/**
 * @inheritdoc
 */
public function rules()
{
    return [
        [['name'], 'required'],
        [['created'], 'safe'],
        [['name'], 'string', 'max' => 200]
    ];
}

public function behaviors() {
  return [
             'timestamp' => [
                 'class' => 'yii\behaviors\TimestampBehavior',
                 'attributes' => [
                     ActiveRecord::EVENT_BEFORE_INSERT => ['created']
                 ]
             ]
         ];
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id' => 'ID',
        'name' => 'Name',
        'created' => 'Created',
    ];
}
}

2 个答案:

答案 0 :(得分:2)

只需从控制器的视图中删除它即可。在规则中它是安全的,所以应该没问题。

答案 1 :(得分:0)

您还可以使用gii(Apply Overwrite)

将此函数添加到模型并生成CRUD
public  function safeAttributes ( ){
    return [
        'id' ,
        'name' ,
    ];
}

此方法必须返回在create / add页面中显示字段所需的唯一字段(由gii生成)。