我是cakePhP的新手,我需要你的帮助。
我正在尝试制作管理活动的日历。所以我选择了fullcalendar jQuery插件来做到这一点。然后,我按照本教程将日历集成到我的项目中,以便在我的数据库中存储事件:
我知道它涉及旧版本的cakePHP,但我一直在继续,直到我分享的部分。我的日历正确显示存储在我数据库中的事件。但我不能添加事件, 这是真正的问题。 我在add.ctp视图中使用了一个保存表单,如下所示:`
<?php
echo $this->Form->create("Event",array('action'=>'add'));
echo $this->Form->input('title' , array('label' => 'Nom de l\'absence'));
echo '<br/> Quand : ' . $displayTime;
echo $this->Form->input('allday', array('type'=>'hidden','value'=>$event['Event']['allday']));
echo $this->Form->input('start', array('type'=>'hidden','value'=>$event['Event']['start']));
echo $this->Form->input('end', array('type'=>'hidden','value'=>$event['Event']['end']));
echo $this->Form->end(array('label'=>'Save' ,'name' => 'save'));
?>
<input type="button" value="Retour" onclick="back();">
<script type="text/javascript">
function back() {
window.location.href ="/calendars/display";
}
</script>
`
当我点击我日历上的某一天时,它会正确启动表单,但是当我点击“保存”时,没有任何反应。
这就是我的表格制作方式:
CREATE TABLE IF NOT EXISTS `events` (
`id` int(11) NOT NULL,
`title` varchar(50) NOT NULL,
`allday` tinyint(1) NOT NULL,
`start` datetime NOT NULL,
`end` datetime DEFAULT NULL,
`editable` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
这是控制器中的'添加':
function add($allday=null,$day=null,$month=null,$year=null,$hour=null,$min=null) {
if($this->request->is('post')) {
//Create and save the new event in the table.
$this->Event->create();
$this->data['Event']['editable']='1';
if($this->Event->save($data)){
$this->Session->setFlash('GG');
}
else {
$this->Session->setFlash('ERROR');
}
}else{
//Set default duration: 1hr and format to a leading zero.
$hourPlus=intval($hour)+1;
if (strlen($hourPlus)==1) {
$hourPlus = '0'.$hourPlus;
}
//Create a time string to display in view.
if ($allday=='true') {
$event['Event']['allday'] = 1;
$displayTime = 'All day event: ('
. date('D',strtotime($day.'/'.$month.'/'.$year)).' '.
$day.' / '. date("M", mktime(0, 0, 0, $month, 10)).')';
} else {
$event['Event']['allday'] = 0;
$displayTime = date('D',strtotime($day.'/'.$month.'/'.$year)).' '
.$day.' / '.date("M", mktime(0, 0, 0, $month, 10)).
', '.$hour.' : '.$min.' — '.$hourPlus.' : '.$min;
}
$this->set("displayTime",$displayTime);
//Populate the event fields for the add form
$event['Event']['title'] = 'Nom de l\'événement';
$event['Event']['start'] = $year.'-'.$month.'-'.$day.' '.$hour.':'.$min.':00';
$event['Event']['end'] = $year.'-'.$month.'-'.$day.' '.$hourPlus.':'.$min.':00';
$this->set('event',$event);
$this->layout="ajax";
}
它进入我的第一个其他区块然后向我显示“ERROR”。 我使用调试器但似乎没有任何异常。 validationErrors()数组为空, 完成的最后一个查询是一个acos,aros和权限,数组内容是好的数据,准备存储,但不想保存...
你能帮帮我吗?答案 0 :(得分:0)
我回答我自己的问题:在线
如果($这 - &GT;事件 - &GT;保存($数据)){
只需用$ this-&gt; data
替换$ data带我好几天才能摆脱耻辱