CakePHP ファイルアップãƒãƒ¼ãƒ‰æ©Ÿèƒ½(josegonzalez/Upload)
インストール
Composerã‹ã‚‰ãƒ©ã‚¤ãƒ–ラリインストール
# composer require josegonzalez/cakephp-upload
è¨å®š
ライブラリãƒãƒ¼ãƒ‰è¨å®š
# bin/cake plugin load josegonzalez/Upload
↓ ã«ãƒãƒ¼ãƒ‰è¨å®šãŒè¿½åŠ ã•れる
※/config/bootstrap.php
Plugin::load('Josegonzalez/Upload.Upload');
モデル
class ProductsTable extends Table
{
 public function initialize(array $config)
 {
  parent::initialize($config);
  $this->setTable('products');
  $this->setDisplayField('id');
  $this->setPrimaryKey('id');
  $this->addBehavior('Timestamp');
  // Upload Plugin
  $this->addBehavior('Josegonzalez/Upload.Upload', [
ã€€ã€€ã€€æœ€å°æ©Ÿèƒ½(アップãƒãƒ¼ãƒ‰ã®ã¿)
   'image' => [],
   ファイルå自動作æˆ
   'image' => [
    'nameCallback' => function ($data, $settings) {
     return uniqid().'-'.strtolower($data['name']);
    }
   ],
   レコード削除時ã«ãƒ•ァイルを削除
   'image' => [
     'keepFilesOnDelete' => false
   ],
  ]);
 }
}
ビュー
<?= $this->Form->create($product, ['type' => 'file']) ?>
 <?= $this->Form->control('image', ["type"=>"file"]); ?>
<?= $this->Form->end() ?>