CakePHP 上传插件 - 字段 'photo_dir' 没有默认值

CakePHP Upload Plugin - Field 'photo_dir' doesn't have a default value

我正在尝试在新主机中设置旧的 cakePHP 应用程序,但突然在共享的 godaddy 主机上遇到此错误。它在旧主机中运行良好。我从事 CakePHP 工作已经 2 年了,但似乎不明白为什么会出现这种情况。我正在使用以下上传插件 cakephp-upload

Error: SQLSTATE[HY000]: General error: 1364 Field 'photo_dir' doesn't have a default value
SQL Query: INSERT INTO `prayag_cms`.`galleries` (`branch_id`, `name`, `album_id`, `display_photo`, `modified`, `created`) VALUES (0, 'Photo', 1, 'CpLMQ28WYAEOnow.jpg_large.jpg', '2016-12-06 10:17:14', '2016-12-06 10:17:14')

这是我的配置

public $actsAs = array(
            'Containable',
    'Upload.Upload' => array(
        'display_photo' => array(
            'fields' => array(
                'dir' => 'photo_dir'
            ),
                            'thumbnailSizes' => array(
                'small' => '250x250',
            ),
                            'thumbnailMethod' => 'php',
                            'path' => '{ROOT}webroot{DS}img{DS}{model}{DS}',
        ),

    )
);

控制器:

public function admin_add() {
    if ($this->request->is('post')) {
        $this->Gallery->create();
        if ($this->Gallery->save($this->request->data)) {
            $this->Session->setFlash(__('The gallery has been saved.'), 'admin/flash_success');
            return $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The gallery could not be saved. Please, try again.'), 'admin/flash_error');
        }
    }
    $branches = $this->Gallery->Branch->find('list');
    $albums = $this->Gallery->Album->find('list');
    $this->set(compact('branches', 'albums'));
}

可能是因为文件夹不存在(webroot/img/users[model])或者没有足够的权限创建新文件夹或访问文件夹。

  1. 因此没有上传照片
  2. 如果照片未上传,则 photo_dir 分配 NULL
  3. 但是你的数据库字段不接受 NULL 值
  4. 然后你会得到那些错误

希望你的问题得到解决