私はyiiフレームワークが初めてです。
2 つのフィールドの形式で (組み込みのウィジェットを使用せずに) フォームを作成しました。
time_start 、 time_end - データベースに DATETIME を入力します。
データベース内のすべてのデータは適切に記録されますが、代わりに文字を入力するとゼロが書き込まれます。
モデルにルールを追加しようとしました:
array ('time_start, time_end', 'type', 'type' => 'datetime', 'datetimeFormat' => 'Y-m-d H:i:s'),
フォーマットはデータベースに保存されているものと同じようですが、何も起こりません。メソッドsafe ()の後のコントローラーで、次のように書きました。
print_r ($ model-> getErrors ());
たとえば、次のフィールドに導入します: 2006-12-26 15:00:30 次 の配列を取得します。
Array ([time_start] => Array ([0] => Start must be datetime.) [Time_end] => Array ([0] => End must be datetime.))
さまざまな形式を試しましたが、間違いはすべて同じでした。形式 (データベースなど) のみで入力できるようにするにはどうすればよいか教えてください。前もって感謝します。
*更新 *
「ビュー / サイト / インデックス」:
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider'=>$modeltask->search(),
'itemView'=>'_viewtask',
)); ?>
ビュータスク:
<div class="view">
<b><?php echo CHtml::encode($data->getAttributeLabel('id')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id), array('view', 'id'=>$data->id)); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('author_id')); ?>:</b>
<?php echo CHtml::encode($data->author_id); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('performer_id')); ?>:</b>
<?php echo CHtml::encode($data->performer_id); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('parent_task_id')); ?>:</b>
<?php echo CHtml::encode($data->parent_task_id); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('project_id')); ?>:</b>
<?php echo CHtml::encode($data->project_id); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('hours_plan')); ?>:</b>
<?php echo CHtml::encode($data->hours_plan); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('title')); ?>:</b>
<?php echo CHtml::encode($data->title); ?>
<br />
<form action="http://testik.test/index.php?r=site/savec" method="post">
<input type="hidden" value="<?php echo $data->id; ?>" name="id_task">
<input type="hidden" value="<?php echo Yii::app()->user->id ?>" name="id_user">
<input type="text" placeholder="Дата начала" name="time_start">
<input type="text" placeholder="Дата конца" name="time_end">
<input type="submit" value="Challenge accepted">
</form>
</div>
SiteController、メソッドactionIndexおよびactionSaveC :
public function actionIndex()
{
$modeltask=new Task('search');
$modeltask->unsetAttributes();
if(isset($_GET['Task']))
$modeltask->attributes=$_GET['Task'];
$this->render('index', array(
'modeltask'=>$modeltask,
));
}
public function actionSaveC()
{
$model = new Calendar;
$model->unsetAttributes();
if(!empty($_POST))
{
$model->attributes = $_POST;
$model->save();
print_r($model->getErrors());
//$this->redirect(array('index'));
}
モデル: 1 行追加され、他は何も変更されていませ
ん