表单操作 url 在 yii2 框架中不起作用

Form action url not working in yii2 framework

<?php $form = ActiveForm::begin(['options' => ['action'=>'SiteController/actionUploadImage','method'=>'post','enctype' => 'multipart/form-data']]) ?>

<?= $form->field($model, 'image')->fileInput() ?>

<button>Submit</button>

<?php ActiveForm::end() ?>

这是我的表单,在检查元素操作中未显示。

您必须像这样在选项之外编写操作:

<?php $form = ActiveForm::begin(['action' => ['SiteController/actionUploadImage'],'method' => 'post']) ?>

[documentation]

您的代码中存在 2 个主要问题。

第一个是,带有 url 的数组应该具有 ['controller-id/action-id'] 的格式,但是您的 url 具有 ['ControllerClass/actionMethod'].

的格式

第二个是 action 在你的数组中的位置。正如Sfili_81在他的回答

中提到的

所以正确的代码应该是这样的:

$form = ActiveForm::begin([
    'action' => ['site/upload-image'],
    'method' => 'post',
    'options' => ['enctype' => 'multipart/form-data'],
]);

此外,自 yii 2.0.8 起,如果您使用 ActiveForm,则无需显式使用 enctype 选项。调用 $form->field(...)->fileInput() 将确保正确的加密类型。