Yii2中的自定义操作错误

时间:2016-02-08 05:38:12

标签: php yii2 custom-action

我有一个名为TextController的控制器,我在我的控制器中创建了一个名为trans controller的自定义操作,我用它来管理多种语言。当我提交表单时出现问题。它向我显示 Not Found(#404) ) 请求的页面不存在。
我对此感到困惑......任何人都可以帮助我吗? 我附上我的控制器并在这里查看。
我的控制器

setTimeout

我的表格

public function actionTranslate()
{
    // echo 'dddddddddd';die();

     for($x = 0; $x < count($_POST['english']); $x++ )
{
    $model = $this->findModel($_POST['text_id'][$x]);
    $model->trans_text_id = $_POST['text_id'][$x];
    $model->trans_text_label =$_POST['label_id'][$x];
    $model->English =$_POST['english'][$x];
    $model->Spanish =$_POST['spanish'][$x];
    $model->French =$_POST['french'][$x] ;
    $model->German =$_POST['german'][$x] ; 
    // echo '<pre>';print_r($model->trans_text_id);

  $model->save(false);

}

echo Yii::$app->session->setFlash('success', 'Translation Saved');

return $this->redirect(Yii::$app->request->referrer);
}

提前致谢...

1 个答案:

答案 0 :(得分:0)

如果您的控制器名为TextController,则在查看文件

...
<form action="<?php echo Yii::$app->request/baseUrl;?>admin/text/translate" method="post" >
...

OR

...
<form action="<?php echo Yii::$app->homeUrl;?>/admin/text/translate" method="post" >
...

并在TextController.php

public function actionTranslate()
{
    // echo 'dddddddddd';die();

    for($x = 0; $x < count($_POST['english']); $x++ )
    {
        if($model = $this->findModel($_POST['text_id'][$x]))
        {
            $model->trans_text_id = $_POST['text_id'][$x];
            $model->trans_text_label =$_POST['label_id'][$x];
            $model->English =$_POST['english'][$x];
            $model->Spanish =$_POST['spanish'][$x];
            $model->French =$_POST['french'][$x] ;
            $model->German =$_POST['german'][$x] ; 
            // echo '<pre>';print_r($model->trans_text_id);

            $model->save(false);
            unset($model);            
        }
    }

    echo Yii::$app->session->setFlash('success', 'Translation Saved');

    return $this->redirect(Yii::$app->request->referrer);
}

你应该在if循环for条件<{1}}结束时将unset条件置于if条件(因为如果在db中找不到?)