0

私は PHP と yii フレームワークが初めてなので、ドロップダウン メニューのヘルプが必要です。私のデータベースには、Category - id, name と News - id, title, content, category_id の 2 つのテーブルがあります。これら 2 つのコントローラー間の関係を作成するにはどうすればよいですか? ニュースを投稿するときは、ドロップダウン メニューからカテゴリを選択する必要があります。ばかげた質問で申し訳ありませんが、現時点ではできません。

4

3 に答える 3

1

これを News モデルに配置するだけです。

    /**
     * @return array relational rules.
     */
    public function relations()
    {
        // NOTE: you may need to adjust the relation name and the related
        // class name for the relations automatically generated below.
        return array(
            'category' => array(self::BELONGS_TO, 'Category', 'category_id'),
        );
    }

そしてこれはあなたのカテゴリーモデルで:

    /**
 * @return array relational rules.
 */
public function relations()
{
    // NOTE: you may need to adjust the relation name and the related
    // class name for the relations automatically generated below.
    return array(
        'newsItems' => array(self::HAS_MANY, 'News', 'category_id'),
    );
}

カテゴリのインスタンスがある場合はいつでも、次のように複数のニュース アイテムを参照できます。

$category = Category::model()->findByPk(1);

$category->newsItems; //an array of News objects

次のようにカテゴリを参照できます。

$news = News::model()->findByPk(1);

$category = $news->category; //a Category object
于 2012-08-16T18:50:28.390 に答える
0

ニュース記事を作成するときに、選択のためにすべてのカテゴリを表示する方法について質問があると思います。ニュース オブジェクトを作成するためのフォームには、次のようなものが必要です。

$cats = Category::model()->findAll();
$cats = CHtml::listData($cats, 'id', 'name');
$form->dropDownList($model, 'category', $cats);

それらの関係とその後のアクセスについては、Benjamin Bythewayの回答を参照してください

于 2012-08-17T08:50:27.520 に答える
0

次のように、paystey がすべて 1 行で書いたことを実行できます。

<?php echo $form->dropDownList($model,'Category', CHtml::listData($CategoryModel::model()->findAll(array('order'=>'Text ASC')), 'CategoryID', 'Text'), array('empty'=> ' -- Select A Category -- '));?>

リスト データの最後のパラメーターは、ページの読み込み時に表示されるものです。

于 2012-08-17T14:09:06.623 に答える