我在https://github.com/dilab/CakePHP-Photo-Behavior使用CakePHP-Photo-Behavior并收到以下错误。
SQL错误:1054:'字段列表'中的未知列'数组'[CORE \ cake \ libs \ model \ datasources \ dbo_source.php,第684行]
查询:INSERT INTO photos
(title
,description
,photo_dir
,photo
,school_id
,user_id
,{ {1}},is_slider
,modified
)VALUES('skjg','lkhg','',数组,1,1,1,'2013-04-12 01:14:09' ,'2013-04-12 01:14:09')
模型:
created
视图:
var $actsAs = array('Photo'=>array(
'dir'=>array('upload_directory'),
'file_field'=>array('photo'),
'file_db_file'=>array('photo'),
'thumb'=>array(true),
'thumb_size'=>array(array("100x100"))
));
控制器:
<?php echo $this->Form->create('Photo', array('type' => 'file')); ?>
<?php echo $this->Form->input('Photo.title'); ?>
<?php echo $this->Form->input('Photo.description', array('type' => 'textarea', 'rows' => 3)); ?>
<?php echo $this->Form->input('Photo.photo', array('type' => 'file')); ?>
<?php echo $this->Form->input('Photo.photo_dir', array('type' => 'hidden')); ?>
<?php echo $this->Form->end(__('Upload', true));?>
调试:
function admin_add_slider() {
debug($this->params);
if (!empty($this->data)) {
//set the school id
$session_school_id = $this->Session->read('Userinfo.currentSchoolid');
$session_user_id = $this->Session->read('Userinfo.id');
$this->data['Photo']['school_id'] = $session_school_id;
$this->data['Photo']['user_id'] = $session_user_id;
$this->data['Photo']['is_slider'] = 1;
$this->Photo->create();
if ($this->Photo->save($this->data)) {
$this->Session->setFlash(__('The Photo has been saved', true));
$this->redirect(array('action' => 'view_slider'));
} else {
$this->Session->setFlash(__('The Photo could not be saved. Please, try again.', true));
}
}
}
表:
data] => Array
(
[Photo] => Array
(
[title] => skjg
[description] => lkhg
[photo_dir] =>
[photo] => Array
(
[name] => PLDMonth6Student_img_2.jpg
[type] => image/jpeg
[tmp_name] => C:\xampp\tmp\phpBA8C.tmp
[error] => 0
[size] => 42085
)
)
)
,id
,title
,description
,small
,large
,is_slider
,created
,{{ 1}},modified
,school_id
,user_id
谢谢 罗伯特
答案 0 :(得分:0)
我没有使用过该行为,但您确定自己的设置不应该是:
var $actsAs = array('Photo'=>array(
'dir'=>'upload_directory',
'file_field'=>'photo',
'file_db_file'=>'photo',
'thumb'=>true,
'thumb_size'=>array("100x100")
));
答案 1 :(得分:0)
在配置数组中添加“dbColumn”字段。仅当“allowEmpty”为 TRUE 时,它才有效。此字段应与数据库列名相同。就我而言,它是“形象”
public $actsAs = array(
'Uploader.Attachment' => array(
'image' => array(
'baseDir' => '',
'uploadDir' => 'files/uploads/',
'overwrite' => true,
'stopSave' => true,
'allowEmpty' => true,
'dbColumn' => 'image'
)
)
);