SQL错误:1054:未知列'Array'cakephp 1.3

时间:2013-04-12 02:34:00

标签: php cakephp

我在https://github.com/dilab/CakePHP-Photo-Behavior使用CakePHP-Photo-Behavior并收到以下错误。

SQL错误:1054:'字段列表'中的未知列'数组'[CORE \ cake \ libs \ model \ datasources \ dbo_source.php,第684行]

查询:INSERT INTO photostitledescriptionphoto_dirphotoschool_iduser_id,{ {1}},is_slidermodified)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 ) ) ) idtitledescriptionsmalllargeis_slidercreated,{{ 1}},modifiedschool_iduser_id

谢谢 罗伯特

2 个答案:

答案 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'                           
    )
  )
);