これに対する答えを求めてクックブックを検索しましたが、困惑しています。それはかなり単純な解決策であるべきだと思います。
クックブックのブログ セクションに従っていますが、テーブルに 2 つの行を追加しただけです。「著者」行と「カテゴリ」行。ただし、データを呼び出そうとしても、ビューには何も返されません。
モデルコードは次のとおりです。
<?php
class Post extends AppModel {
public $validate = array(
'title' => array(
'rule' => 'notEmpty'
),
'body' => array(
'rule' => 'notEmpty'
),
'author' => array(
'rule' => 'notEmpty'
),
'category' => array(
'rule' => 'notEmpty'
)
);
}
これが私のコントローラーコードです:
public function index() {
$this->set('posts', $this->Post->find('all'));
$this->set('title_for_layout','jotliet.com development blog');
}
ビューコードは次のとおりです。
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['Post']['id']; ?></td>
<td>
<?php echo $this->Html->link($post['Post']['title'], array('action' => 'view', $post['Post']['id'])); ?>
</td>
<td>
<?php echo $post['Post']['author']; ?>
</td>
<td>
<?php echo $post['Post']['category']; ?>
</td>
<td>
<?php echo $this->Form->postLink(
'Delete',
array('action' => 'delete', $post['Post']['id']),
array('confirm' => 'Are you sure?'));
?>
<?php echo $this->Html->link('Edit', array('action' => 'edit', $post['Post']['id'])); ?>
</td>
<td>
<?php echo $post['Post']['created']; ?>
</td>
<td>
<?php echo $post['Post']['body']; ?>
</td>
</tr>
<?php endforeach; ?>
"created"、"title"、および "body" 行は正常に返されます。ただし、「作成者」と「カテゴリ」は何も返しません。
モデル、コントローラー、およびビュー コードを複数の異なる方法でテストしました。そして、テーブル自体に問題があると仮定して、phpMyadmin でデータベース自体を台無しにしました。結果がありません。
これには簡単な解決策が必要だと思います。みんなありがとう。
アップデート:
print_r($posts) を実行したところ、次のように返されました。
Array
(
[0] => Array
(
[Post] => Array
(
[id] => 1
[title] => blah
[body] => blah
[created] => blah
[modified] => blah
)
)
「著者」または「カテゴリ」が見つかりません。どうすればこれを変更できますか?