1

yii フレームワークのブログデモの blog/views/post/_view.php の $data について混乱しています $data のこの属性を取得するにはどうすればよいですか? $data の定義はどこにありますか? ソースで見つけましたが、 author->username、url commentCountに関する行が表示されませんか?

<div class="post">
    <div class="title">
        <?php echo CHtml::link(CHtml::encode($data->title), $data->url); ?>
    </div>
    <div class="author">
        posted by <?php echo $data->author->username . ' on ' . date('F j, Y',$data->create_time); ?>
    </div>
    <div class="content">
        <?php
            $this->beginWidget('CMarkdown', array('purifyOutput'=>true));
            echo $data->content;
            $this->endWidget();
        ?>
    </div>
    <div class="nav">
        <b>Tags:</b>
        <?php echo implode(', ', $data->tagLinks); ?>
        <br/>
        <?php echo CHtml::link('Permalink', $data->url); ?> |
        <?php echo CHtml::link("Comments ({$data->commentCount})",$data->url.'#comments'); ?> |
        Last updated on <?php echo date('F j, Y',$data->update_time); ?>
    </div>
</div>

説明を手伝ってもらえますか、リンクやキーワークを教えてもらえますか。すべてに感謝します!

4

2 に答える 2

3

のドキュメントを参照してくださいCListView:

上記のコードは、最初に Post ActiveRecord クラスのデータ プロバイダーを作成します。次に、CListView を使用して、データ プロバイダーから返されたすべてのデータ項目を表示します。表示は、'_post' という名前の部分ビューを介して行われます。この部分ビューは、データ項目ごとに 1 回レンダリングされます。 ビューでは、変数 $data を介して現在のデータ項目にアクセスできます。 詳細については、itemView を参照してください。

したがって、あなたのコンテキストで$dataは、投稿がレンダリングされています。

于 2012-04-04T19:29:12.547 に答える
2

$data は、単一行のデータを持つモデル クラスのオブジェクトです。author は、インスタンスが $data であるモデルの別のモデルとの関係です。$data->author->username ここで username は作者が指すモデルの変数です。$data->author もオブジェクトとして扱われます。作成者が指し示すモデルに対してリレーショナル クエリを実行するだけです。

モデルの関係は、モデルの Relations() 関数で確認できます。あなたの答えを見つけるyiiのガイドを試してみてください。

于 2012-04-05T10:00:57.203 に答える