yii2 php 单击提交按钮时设置模型属性

yii2 php set model attribute when clicking submit button

我有一个表单视图,用户可以在其中填写模型的属性。 提交时,我希望用户可以发布模型或将其保存为草稿。区别基本上只是需要在数据库中设置的布尔“草稿”。

<?= Html::submitButton(Yii::t('OfferModule.form', 'Save as draft'), ['class' => 'btn btn-outline btn-submit', 'id' => 'draft-btn']) ?>
<?= Html::submitButton(Yii::t('OfferModule.form', 'Submit'), ['disabled' => 'disabled', 'class' => 'btn btn-primary btn-submit', 'id' => 'submit-btn']) ?>

由于我通常使用 JavaScript 进行开发并且到目前为止只掌握了 php 基础知识,因此最好的方法是什么?我能想到的解决方案是:

a) 向控制器发送一个额外的参数,并根据它在控制器中设置模型值(-> 我如何向模型额外发送另一个参数?)

b) 在提交前单击按钮保存为草稿时设置属性“草稿”(-> 是否可以设置属性并使用相同的按钮提交?)

c) 在“另存为草稿”按钮后面隐藏一个复选框,当点击它时,通过添加一些 JavaScript 来触发提交(-> 我如何将复选框表单域隐藏在按钮后面? )

如果有人能帮助我,我将不胜感激 :) 提前致谢!

您可以使用以下方式提交表单:

<button type="submit" id="draft-btn" value="draft" name="actionBtn">Save as draft</button>
<button type="submit" id="submit-btn" value="submit" name="actionBtn">Submit</button>

您可以通过actionBtn值来决定是保存为草稿还是发布。如果 'actionBtn' 的值为草稿,则将其保存为草稿,并在提交该值后发布。