php yii2的控制器,php-控制器中的自定义操作在yii2中不起作用

我有一个名为RegisterController和索引视图的控制器.如果我提交表单,则显示未找到页面(404)错误.同样,如果我将方法更改为actionCreate而不是actionAddBasic,则工作正常.请帮助我解决问题.谢谢.

RegisterController.php

namespace app\controllers;

use app\models\Address;

use yii;

use yii\filters\AccessControl;

use yii\web\Controller;

use yii\filters\VerbFilter;

use app\models\BasicInfo;

use app\models\User;

/**

* Class RegisterController

* To Handle Registration Related Requests.

*/

class RegisterController extends Controller

{

public function behaviors()

{

return [

'access' => [

'class' => AccessControl::className(),

'only' => ['addBasic'],

'rules' => [

[

'actions' => ['addBasic'],

'allow' => true,

'roles' => ['?'],

],

],

],

'verbs' => [

'class' => VerbFilter::className(),

'actions' => [

'addBasic' => ['post'],

],

],

];

}

/**

* To Load Registration Page.

*/

public function actionIndex()

{

$user = new User();

$basicInfo = new BasicInfo();

$basicInfo->gender = 1;

$fileUpload = new FileUpload();

$addressModel = new Address();

return $this->render('index', [

'userModel' => $user,

'basicInfoModel' => $basicInfo,

'fileUploadModel' => $fileUpload,

'addressModel' => $addressModel

]);

}

public function actionAddBasic()

{

yii::trace('Inside AddBasic');

return $this->render('index', [

'userModel' => new User(),

'basicInfoModel' => new BasicInfo(),

'fileUploadModel' => new FileUpload(),

'addressModel' => new Address()

]);

}

}

register / index.php:

use yii\helpers\Html;

use yii\helpers\ArrayHelper;

use yii\widgets\ActiveForm;

use app\models\MaritalStatus;

use app\models\ProfileFor;

?>

<?php $form = ActiveForm::begin(['id' => 'form-signup-1', 'action' => ['index.php/register/addBasic']]); ?>

= $form->field($basicInfoModel, 'name')->textInput(['maxlength' => 25, 'placeholder' => 'Name']) ?>

= $form->field($userModel, 'email')->input('email', ['maxlength' => 30, 'placeholder' => 'Email']) ?>

= $form->field($userModel, 'mno')->input('text', ['maxlength' => 10, 'placeholder' => 'Mobile Number']) ?>

= Html::submitButton('Create', ['class' => 'btn btn-success']) ?>

= Html::resetButton('Reset', ['class' => 'btn btn-success']) ?>

解决方法:

在您的情况下,我没有获得创建单独操作的好处,但是错误在这里:

'action' => ['index.php/register/addBasic'],

addBasic应该替换为add-basic.

操作名称用破折号和小写字母转换.

url中也包括index.php是多余的,这应该足够了:

'action' => ['register/add-basic'],

甚至对于同一控制器也是如此:

'action' => ['add-basic'],

官方文件:

标签:custom-action,yii2,php

来源: https://codeday.me/bug/20191120/2045467.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值