teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

Controller\.phpの追加

2017/03/16 08:16

投稿

defaa
defaa

スコア11

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,23 @@
15
15
  しかし、実際に作成されたエンティティのphoto,photo_dirフィールドはnullのままで、ルートを設定したディレクトリにもファイルがアップロードされていません。
16
16
 
17
17
  【追記】
18
+ StoreArticlesController.php
19
+ ```
20
+ public function add()
21
+ {
22
+ $storeArticle = $this->StoreArticles->newEntity();
23
+ if ($this->request->is('post')) {
24
+ $storeArticle = $this->StoreArticles->patchEntity($storeArticle, $this->request->data);
25
+ if ($this->StoreArticles->save($storeArticle)) {
26
+ $this->Flash->success(__($this->request->data));
27
+ return $this->redirect(['action' => 'index']);
28
+ }
29
+ $this->Flash->error(__('The store article could not be saved. Please, try again.'));
30
+ }
31
+ $this->set(compact('storeArticle'));
32
+ $this->set('_serialize', ['storeArticle']);
33
+ }
34
+ ```
18
35
  StoreArticlesTable.php
19
36
  ```
20
37
  public function initialize(array $config)

2

ミス修正

2017/03/16 08:16

投稿

defaa
defaa

スコア11

title CHANGED
File without changes
body CHANGED
@@ -64,7 +64,6 @@
64
64
  body TEXT NOT NULL
65
65
  );
66
66
  ```
67
- ```
68
67
 
69
68
  期待する保存先ディレクトリ
70
69
  webroot/files/StoreArticle/photo/以下

1

関連するソースコードの追加、心当たりの追加

2017/03/16 08:15

投稿

defaa
defaa

スコア11

title CHANGED
File without changes
body CHANGED
@@ -14,9 +14,58 @@
14
14
 
15
15
  しかし、実際に作成されたエンティティのphoto,photo_dirフィールドはnullのままで、ルートを設定したディレクトリにもファイルがアップロードされていません。
16
16
 
17
- モデル
17
+ 【追記】
18
18
  StoreArticlesTable.php
19
+ ```
20
+ public function initialize(array $config)
21
+ {
22
+ parent::initialize($config);
19
23
 
24
+ $this->table('store_articles');
25
+ $this->displayField('title');
26
+ $this->primaryKey('id');
27
+ $this->addBehavior('Josegonzalez/Upload.Upload', [
28
+ 'photo' => [
29
+ 'path' => WWW_ROOT.'files{DS}{model}{DS}{field}{DS}',
30
+ 'fields' => [
31
+ 'dir' => 'photo_dir'
32
+ ]
33
+ ]
34
+ ]);
35
+ }
36
+ ```
37
+ add.ctp
38
+ ```
39
+ <?= $this->Form->create($storeArticle) ?>
40
+ <fieldset>
41
+ <legend><?= __('新規投稿') ?></legend>
42
+ <?php
43
+ echo $this->Form->input('start', ['empty' => true, 'label' => '掲載開始時間']);
44
+ echo $this->Form->input('title', ['label' => 'タイトル']);
45
+ echo $this->Form->input('body', ['label' => '本文']);
46
+ echo $this->Form->input('photo', ['type' => 'file', 'label' => '画像']);
47
+ echo $this->Form->input('photo_dir', ['type' => 'hidden']);
48
+ ?>
49
+ <script>
50
+ CKEDITOR.replace( 'body' );
51
+ </script>
52
+ </fieldset>
53
+ <?= $this->Form->button(__('投稿')) ?>
54
+ <?= $this->Form->end() ?>
55
+ ```
56
+ DBテーブル
57
+ ```
58
+ CREATE TABLE store_articles (
59
+ id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
60
+ start DATETIME,
61
+ title VARCHAR(64) NOT NULL,
62
+ photo varchar(255),
63
+ photo_dir varchar(255),
64
+ body TEXT NOT NULL
65
+ );
66
+ ```
67
+ ```
68
+
20
69
  期待する保存先ディレクトリ
21
70
  webroot/files/StoreArticle/photo/以下
22
71
 
@@ -26,6 +75,11 @@
26
75
 
27
76
  必要な追加情報あればよろしくお願いいたします。
28
77
 
78
+ 【追記】
79
+ 保存されない原因のこころあたりとして、もうひとつ、store_articlesのテーブル構造をmysqlのコマンドライン上でALTER TABLEを用いてphotoとphoto_dirのフィールドを追加しました。
80
+ これに伴ってdebug_kitのchacheの部分からキャッシュを削除しましたが、テーブル構造の変更がUpload Plugin 3.0の認識されていない可能性があるのかも?と思います。そのようなケースはありますか?
81
+
82
+
29
83
  ###補足情報(言語/FW/ツール等のバージョンなど)
30
84
  Upload Plugin 3.0はPackagistの最新版
31
85
  composer require josegonzalez/cakephp-upload