1

CakePHP を学ぼうとして、問題なくブログ チュートリアルを完了しました。ブラウザに Cake のウェルカム ページが表示され、データベース接続ファイルが見つかり、Cake がデータベースに正常に接続されます。私が別の方法で行った唯一のことは、phpMyAdmin を使用してposts名前付きのデータベースにテーブルを作成したdefault,ことですが、内容はすべてチュートリアルと同じです。なぜ私は得るのですか

エラー: モデル Post のテーブル ポストがデータソース デフォルトで見つかりませんでした。

ブログのチュートリアルで - レイヤーを追加しますか? これはモデルです:

<?php
class Post extends AppModel {
}

これはコントローラーです:

<?php
class PostsController extends AppController {
    public $helpers = array('Html', 'Form');
    public function index() {
        $this->set('posts', $this->Post->find('all'));
    }
}

これはビューです:

<!-- File: /app/View/Posts/index.ctp -->    
<h1>Blog posts</h1>
<table>
    <tr>
        <th>Id</th>
        <th>Title</th>
        <th>Created</th>
    </tr>
    <?php foreach ($posts as $post): ?>
    <tr>
        <td><?php echo $post['Post']['id']; ?></td>
        <td>
            <?php echo $this->Html->link($post['Post']['title'],
array('controller' => 'posts', 'action' => 'view', $post['Post']['id'])); ?>
        </td>
        <td><?php echo $post['Post']['created']; ?></td>
    </tr>
    <?php endforeach; ?>
    <?php unset($post); ?>
</table>

これがスタック トレースです。

CORE\Cake\Model\Model.php line 3243 → Model->setSource(string)
CORE\Cake\Model\Model.php line 2696 → Model->getDataSource()
APP\Controller\PostsController.php line 5 → Model->find(string)
[internal function] → PostsController->index()
CORE\Cake\Controller\Controller.php line 486 → ReflectionMethod->invokeArgs(PostsController, array)
CORE\Cake\Routing\Dispatcher.php line 187 → Controller->invokeAction(CakeRequest)
CORE\Cake\Routing\Dispatcher.php line 162 → Dispatcher->_invoke(PostsController, CakeRequest, CakeResponse)
APP\webroot\index.php line 111 → Dispatcher->dispatch(CakeRequest, CakeResponse)
4

3 に答える 3

1

コードは問題ないようです。database.phpデータベース名が正しいことを確認してください。

于 2013-08-08T00:54:31.210 に答える
0

モデルに入れる

<?php
class Post extends AppModel {
    public $name = 'Post';
}
?>
于 2013-11-25T22:17:43.770 に答える
0

データベース ユーザーがテーブルに対する選択権限を持っていることを確認してください。私は同じエラーがあり、それが私の問題でした。

于 2014-03-23T01:22:38.420 に答える