我在数据库中添加了一个新的类型为time的字段,因为我的控制器已经被烘焙了,我不想再次烘焙它。如果这样做,我现有的更改将消失。 我想要时间格式的输入类型,但是当我在前端看到它时,它会以文本框的形式出现。 下面是我的实体:
<?php
namespace App\Model\Entity;
use Cake\ORM\Entity;
/**
* BlackOutDay Entity
*
* @property int $id
* @property int|null $day
* @property int|null $topic_id
* @property \Cake\I18n\FrozenDate|null $date
* @property \Cake\I18n\FrozenTime|null $from_time
* @property \Cake\I18n\FrozenTime|null $to_time
* @property bool $full_day
*/
class BlackOutDay extends Entity
{
/**
* Fields that can be mass assigned using newEntity() or patchEntity().
*
* Note that when '*' is set to true,this allows all unspecified fields to
* be mass assigned. For security purposes,it is advised to set '*' to false
* (or remove it),and explicitly make individual fields accessible as needed.
*
* @var array
*/
protected $_accessible = [
'day' => true,'topic_id' => true,'date' => true,'from_time' => true,'to_time' => true,'full_day' => true
];
}
型号:
<?php
namespace App\Model\Table;
use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;
/**
* BlackOutDays Model
*
* @method \App\Model\Entity\BlackOutDay get($primaryKey,$options = [])
* @method \App\Model\Entity\BlackOutDay newEntity($data = null,array $options = [])
* @method \App\Model\Entity\BlackOutDay[] newEntities(array $data,array $options = [])
* @method \App\Model\Entity\BlackOutDay|bool save(\Cake\Datasource\EntityInterface $entity,$options = [])
* @method \App\Model\Entity\BlackOutDay saveOrFail(\Cake\Datasource\EntityInterface $entity,$options = [])
* @method \App\Model\Entity\BlackOutDay patchEntity(\Cake\Datasource\EntityInterface $entity,array $data,array $options = [])
* @method \App\Model\Entity\BlackOutDay[] patchEntities($entities,array $options = [])
* @method \App\Model\Entity\BlackOutDay findOrCreate($search,callable $callback = null,$options = [])
*/
class BlackOutDaysTable extends Table
{
/**
* Initialize method
*
* @param array $config The configuration for the Table.
* @return void
*/
public function initialize(array $config)
{
parent::initialize($config);
$this->setTable('black_out_days');
$this->setDisplayField('id');
$this->setPrimaryKey('id');
}
/**
* Default validation rules.
*
* @param \Cake\Validation\Validator $validator Validator instance.
* @return \Cake\Validation\Validator
*/
public function validationDefault(Validator $validator)
{
$validator
->integer('id')
->allowEmptyString('id','create');
$validator
->integer('day')
->allowEmptyString('day');
$validator
->integer('topic_id')
->allowEmptyString('topic_id');
$validator
->date('date')
->allowEmptyDate('date');
$validator
->time('from_time')
->allowEmptyTime('from_time');
$validator
->time('to_time')
->allowEmptyTime('to_time');
$validator
->boolean('full_day')
->allowEmptyString('full_day');
return $validator;
}
}
由于我后来添加了字段,所以我手动添加了
$validator
->time('from_time')
->allowEmptyTime('from_time');
$validator
->time('to_time')
->allowEmptyTime('to_time');
我也已经初始化了该属性。