在cakephp 3中输入时间类型

我在数据库中添加了一个新的类型为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');

我也已经初始化了该属性。

yujingjean 回答:在cakephp 3中输入时间类型

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3167194.html

大家都在问