0

私は深刻な問題に直面しています。実際、私は関係の休憩の命名規則をよく理解していません。個人的には、具体的な例でもっと文書化すべきだと思います。うまくいけば、それを理解できれば、いくつかの例を書き始めることができます。また、誰かが休憩関係の慣習をよく理解している場合は、ここで説明できれば素晴らしいと思います。

2つのテーブルがあります。データベースにあるすべてのテーブル名は、モデル名の小文字です。すべてのフィールド名はモデルの属性と同じです。投稿---->コメント(投稿には複数のコメントを含めることができます)

モデル投稿:

<?php
/**
 * !Database Default
 * !Table post
 * !HasMany comment, Class:try.models.Comment,Key:postId
 */
class Post extends Model 
{
        /** !Column PrimaryKey, Integer, AutoIncrement */
        public $postId;

        /** !Column String */
        public $name;

}
?>

モデルコメント:

<?php
/**
 * !Database Default
 * !Table comment
 * !BelongsTo post
 */
class Comment extends Model {
        /** !Column PrimaryKey, Integer, AutoIncrement */
        public $commentId;

        /** !Column String */
        public $name;

}
?>

ただし、次の操作を行うと、エラーが発生します

<?php
Library::import('try.models.Post');
Library::import('try.models.Comment');

Library::import('recess.framework.controllers.Controller');

/**

 * !RespondsWith Layouts

 * !Prefix Views: home/, Routes: /

 */

class TryHomeController extends Controller {



        /** !Route GET */

        function index() 
        {               

                $this->flash = 'Welcome to your new Recess application!';

                $Post= new Post(5);
                $Comments=$Post->comment();
        }



}

?>

ただし、このエラーが発生します

try.models.Commentはインポートされていません。

4

1 に答える 1

1

クラスラインであなたの投稿モデルを見てください

**
* !Database Default
* !Table post
* !HasMany comment, **Class:try.models.Comment**,Key:postId
*/

ここでは、完全なクラスパスtry.models.Commentを含めています。含めるクラスとしてCommentを指定するだけで済みます。ファイル名がClassName.class.phpの規則に従っていることを確認してください。

于 2011-11-15T22:39:54.530 に答える