乍一看,这可能看起来很奇怪。
我们希望允许用户保存到数据库中,即使缺少一些必填字段。
然后,当用户希望发布这些记录时,不应该被允许,因为缺少这些必填字段。
也许,创建某种所需的变体来告诉我们: PUBLISHING 需要,但 INSERTING 不需要;
考虑到您的 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'))
我没有显示任何验证。