2

非常によく似ていて、同じデータベーステーブルを共有できる2つのYiiモデルを作成しようとしています。1つは「質問」で、もう1つは「記事」です。どちらもタイトル、本文、著者を共有しています。'Question'には、'article'がfollow_upと呼ばれるものと対話する必要がないという追加のフィールドがテーブルにあります。

ほとんどのメソッドと検証は同じですが、ifステートメントで簡単に実行できる小さな違いがいくつかあります。私が見ている主な問題はURLです。site.com/questionやsite.com/articleのような別々のURLが必要ですが、両方とも同じモデル、コントローラー、ビューと相互作用します。

これはどのように行うことができますか?

4

1 に答える 1

5

Yii構成のコンポーネントを使用してurlManager、/articleと/questionのルートを設定し、同じコントローラーに移動します。次に、異なるアクションまたは異なるパラメーターを使用して、2つを区別します。それらはほとんど同じであるとあなたが言ったので、私は次のように異なるパラメータと単一のアクションを提案します:

array(
  ...
  'components' => array(
    ...
    'urlManager' => array(
      'question/<\d+:id>' => 'mycontroller/myaction/type/question/id/<id>',
      'article/<\d+:id>' => 'mycontroller/myaction/type/article/id/<id>',
    ),
  ),
);

もちろん、必要に応じて変更する必要がありますが、これが一般的な設定です。詳細については、こちらをご覧ください:http ://www.yiiframework.com/doc/guide/1.1/en/topics.url

于 2012-07-16T06:15:46.770 に答える