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

質問編集履歴

5

画像挿入しました。

2019/08/21 02:47

投稿

kumi-e
kumi-e

スコア5

title CHANGED
File without changes
body CHANGED
@@ -148,6 +148,8 @@
148
148
  if ($this->Post->save($this->request->data)) {
149
149
  のPostをwriterに変えたらエラーになってしまいました。
150
150
 
151
+ ![![イメージ説明](23456e0d8970f0db1c78d8e3320eb100.png)](099b00df225230db6cbf2f895099b36c.png)
152
+
151
153
  ここに問題に対して試したことを記載してください。
152
154
 
153
155
  ### 補足情報(FW/ツールのバージョンなど)

4

すみません。これが私の知識の精一杯です。

2019/08/21 02:47

投稿

kumi-e
kumi-e

スコア5

title CHANGED
File without changes
body CHANGED
@@ -138,9 +138,12 @@
138
138
  ?>
139
139
  var_dump($this->request->data);exit;
140
140
 
141
+ ```
142
+ ```
143
+ Nr Query Error Affected Num. rows Took (ms)
144
+ 1 SELECT `Post`.`id`, `Post`.`title`, `Post`.`body`, `Post`.`作成者`, `Post`.`作成日`, `Post`.`更新日` FROM `fencer`.`posts` AS `Post` WHERE 1 = 1 12 12 0
141
145
 
142
146
  ```
143
-
144
147
  ### 試したこと
145
148
  if ($this->Post->save($this->request->data)) {
146
149
  のPostをwriterに変えたらエラーになってしまいました。

3

ご指摘いただいた部分と、コードきちんと分けました。

2019/08/21 02:22

投稿

kumi-e
kumi-e

スコア5

title CHANGED
File without changes
body CHANGED
@@ -56,9 +56,10 @@
56
56
 
57
57
 
58
58
  }
59
-
59
+ ```
60
+ ```
60
61
  view
61
- å<html>
62
+ <html>
62
63
  <meta charset="utf-8">
63
64
  <body>
64
65
  <table>
@@ -87,7 +88,8 @@
87
88
  </table>
88
89
  </body>
89
90
  </html>
90
-
91
+ ```
92
+ ```
91
93
  model
92
94
  <?php
93
95
  App::uses('AppModel','Model');
@@ -123,7 +125,8 @@
123
125
  );
124
126
  }
125
127
  ?>
126
-
128
+ ```
129
+ ```
127
130
  edit.ctp
128
131
  <?php
129
132
  echo $this->Form->create('Post');
@@ -133,6 +136,7 @@
133
136
  echo $this->Form->input('writer');
134
137
  echo $this->Form->end('送信');
135
138
  ?>
139
+ var_dump($this->request->data);exit;
136
140
 
137
141
 
138
142
  ```

2

ダブりのコードを削除しました。

2019/08/21 02:20

投稿

kumi-e
kumi-e

スコア5

title CHANGED
File without changes
body CHANGED
@@ -134,36 +134,6 @@
134
134
  echo $this->Form->end('送信');
135
135
  ?>
136
136
 
137
- index.ctp
138
- <html>
139
- <meta charset="utf-8">
140
- <body>
141
- <table>
142
- <tr>
143
- <th>ID</th>
144
- <th>title</th>
145
- <th>本文</th>
146
- <th>作成者</th>
147
- <th>操作</th>
148
-
149
- </tr>
150
- <tr>
151
- <?php foreach ($posts as $post) { ?>
152
- <tr>
153
- <td><?php echo $post['Post']['id']; ?></td>
154
- <td><?php echo $post['Post']['title']; ?></td>
155
- <td><?php echo $post['Post']['body']; ?></td>
156
- <td><?php echo $post['Post']['writer']; ?></td>
157
- <td><?php echo $post['Post']['data']; ?></td>
158
- <td><?php echo $post['Post']['data_taime']; ?></td>
159
- <td><?php echo $this->Html->link(__('編集'),array('action' => 'edit', $post['Post']['id'])); ?>
160
- <?php echo $this->Form->postLink(__('削除'),array('action' => 'delete', $post['Post']['id']),
161
- array('confirm' => __('削除してよろしいですか?'))); ?></td>
162
- </tr>
163
- <?php } ?>
164
- </table>
165
- </body>
166
- </html>
167
137
 
168
138
  ```
169
139
 

1

ソースコードと説明を追記致しました。宜しくお願い致します。

2019/08/21 02:02

投稿

kumi-e
kumi-e

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,8 +1,9 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
3
  初めまして。まだ勉強を始めて間もないものです。勉強不足だとは思いますが、どなたかお力を貸していただけませんでしょうか。
4
- CakePHPで「タイトル」「内容」「作成者」の画面から、editでテーブルに反映させたいのですが、作成者だけがうまく反映されません。
4
+ CakePHPで「タイトル」「内容」「作成者」の画面から、editでテーブルに反映させたいのですが、作成者」の名前だけがフォームにきちんと入力してもテーブルに反映されません。
5
5
  宜しくお願い致します。
6
+ わかりづらい文章で申し訳ありません。
6
7
 
7
8
  ### 発生している問題・エラーメッセージ
8
9
  作成者が登録、表示されません。また、エラーメッセージは出てはいません。
@@ -12,7 +13,24 @@
12
13
 
13
14
 
14
15
  ```
16
+ <?php
17
+ App::uses('AppController', 'Controller');
18
+ class PostsController extends AppController {
19
+ public function index() {
20
+ $posts = $this->Post->find('all');
21
+ $this->set('posts',$posts);
22
+ }
23
+
24
+ public function add() {
25
+ if ($this->request->is('post')) {
26
+ if($this->Post->save($this->request->data)) {
27
+ $this->Session->setFlash('登録されました');
28
+ return $this->redirect(array('action' => 'index'));
29
+ }
30
+ }
31
+ }
32
+
15
- public function edit($id = null) {
33
+ public function edit($id = null) {
16
34
  if ($this->request->is(array('post','put'))) {
17
35
  if ($this->Post->save($this->request->data)) {
18
36
  $this->Session->setFlash(__('保存しました'));
@@ -25,6 +43,128 @@
25
43
  $this->request->data = $this->Post->find('first',$options);
26
44
  }
27
45
  }
46
+
47
+ public function delete($id = null) {
48
+ if ($this->repuest->is('post')) {
49
+ if ($this->Post->delete($id)) {
50
+ $this->Session->setFlash(__('削除できました'));
51
+ }else{
52
+ $this->Session->setFlash(__('削除できませんでした'));
53
+ return $this->redirect(array('action' => 'index'));
54
+
55
+ }
56
+
57
+
58
+ }
59
+
60
+ view
61
+ å<html>
62
+ <meta charset="utf-8">
63
+ <body>
64
+ <table>
65
+ <tr>
66
+ <th>ID</th>
67
+ <th>title</th>
68
+ <th>本文</th>
69
+ <th>作成者</th>
70
+ <th>操作</th>
71
+
72
+ </tr>
73
+ <tr>
74
+ <?php foreach ($posts as $post) { ?>
75
+ <tr>
76
+ <td><?php echo $post['Post']['id']; ?></td>
77
+ <td><?php echo $post['Post']['title']; ?></td>
78
+ <td><?php echo $post['Post']['body']; ?></td>
79
+ <td><?php echo $post['Post']['writer']; ?></td>
80
+ <td><?php echo $post['Post']['data']; ?></td>
81
+ <td><?php echo $post['Post']['data_taime']; ?></td>
82
+ <td><?php echo $this->Html->link(__('編集'),array('action' => 'edit', $post['Post']['id'])); ?>
83
+ <?php echo $this->Form->postLink(__('削除'),array('action' => 'delete', $post['Post']['id']),
84
+ array('confirm' => __('削除してよろしいですか?'))); ?></td>
85
+ </tr>
86
+ <?php } ?>
87
+ </table>
88
+ </body>
89
+ </html>
90
+
91
+ model
92
+ <?php
93
+ App::uses('AppModel','Model');
94
+ class Post extends AppModel {
95
+ public $validate = array(
96
+ 'title' => array(
97
+ 'notblank' => array(
98
+ 'rule' => array('notblank'),
99
+ 'message' => 'タイトルを入力してください。',
100
+ ),
101
+ 'maxLength' => array(
102
+ 'rule' => array('maxLength',30),
103
+ 'message' => 'タイトルは30字以内で入力してください。',
104
+ ),
105
+ ),
106
+ 'body' => array(
107
+ 'notblank' => array(
108
+ 'rule' => array('notblank'),
109
+ 'message' => '本文を入力してください。',
110
+ ),
111
+
112
+ ),
113
+ 'writer' => array(
114
+ 'notblank' => array(
115
+ 'rule' => array('notblank'),
116
+ 'message' => '本文を入力してください。',
117
+ ),
118
+ 'maxLength' => array(
119
+ 'rule' => array('maxLength',10),
120
+ 'message' => 'タイトルは10字以内で入力してください。',
121
+ ),
122
+ ),
123
+ );
124
+ }
125
+ ?>
126
+
127
+ edit.ctp
128
+ <?php
129
+ echo $this->Form->create('Post');
130
+ echo $this->Form->input('id');
131
+ echo $this->Form->input('title');
132
+ echo $this->Form->input('body');
133
+ echo $this->Form->input('writer');
134
+ echo $this->Form->end('送信');
135
+ ?>
136
+
137
+ index.ctp
138
+ <html>
139
+ <meta charset="utf-8">
140
+ <body>
141
+ <table>
142
+ <tr>
143
+ <th>ID</th>
144
+ <th>title</th>
145
+ <th>本文</th>
146
+ <th>作成者</th>
147
+ <th>操作</th>
148
+
149
+ </tr>
150
+ <tr>
151
+ <?php foreach ($posts as $post) { ?>
152
+ <tr>
153
+ <td><?php echo $post['Post']['id']; ?></td>
154
+ <td><?php echo $post['Post']['title']; ?></td>
155
+ <td><?php echo $post['Post']['body']; ?></td>
156
+ <td><?php echo $post['Post']['writer']; ?></td>
157
+ <td><?php echo $post['Post']['data']; ?></td>
158
+ <td><?php echo $post['Post']['data_taime']; ?></td>
159
+ <td><?php echo $this->Html->link(__('編集'),array('action' => 'edit', $post['Post']['id'])); ?>
160
+ <?php echo $this->Form->postLink(__('削除'),array('action' => 'delete', $post['Post']['id']),
161
+ array('confirm' => __('削除してよろしいですか?'))); ?></td>
162
+ </tr>
163
+ <?php } ?>
164
+ </table>
165
+ </body>
166
+ </html>
167
+
28
168
  ```
29
169
 
30
170
  ### 試したこと