これは一見奇妙に見えるかもしれません。
一部の必須フィールドが欠落している場合でも、ユーザーがデータベースに保存できるようにする必要があります。
次に、ユーザーがそれらのレコードを公開したい場合、それらの必須フィールドが欠落しているため、許可されるべきではありません。
おそらく、次のような必要なバリエーションを作成します。公開には必要ですが、挿入には必要ありません。
Yiiの知識を考慮して、この場合に使用する必要のあるパターンはありますか?
アップデート
シナリオは優れたアプローチのようですが、ドキュメントでは次のように追加することを提案しています。
$model = new MyActiveRecord('Inserting');
私たちのコントローラーで。
ただし、私のコントローラーには、次のようなものがあります。
public function actionCreate()
{
$this->layout = 'admin';
$model=new HsGuestbook;
$localized[] = $this->getExtraModelGuestTr();
if(isset($_POST['HsGuestbook']))
{
...
だから、私はやろうとしました:
if(isset($_POST['HsGuestbook']))
{
//check validation scenarios
if ($model->status === 0) { //if publish isn't set:
$model->setScenario('Insert');
} elseif ($model->status === 1){
$model->setScenario('Publish');
}
そして私のモデルでは:
public function rules()
{
return array(
array('name, category', 'required', 'on'=>'Insert'),
array('name, category, image', 'required', 'on'=>'Publish'))
検証が表示されませんでした。