yii2表单操作的问题。当我使用方法get在yii2中提交表单时,如何重定向以指定Url

时间:2016-05-15 04:14:18

标签: forms yii2 action

我遇到Book book = new Book(); book.setProperty("title","Animal Farm"); book.setProperty("author","George Orwell"); System.out.println("Book: " + book.getProperty("title") + " by " + book.getProperty("author")) 形式yii2方法的问题。这是我的表格:

get

这是我的SearchController与actionIndex():

<form class="search-form" method="get" action="<?php echo Yii::$app->urlManager->createAbsoluteUrl(['search/index']); ?>" id="search-form">
    <div class="row search-box">
        <div class="12u search-box-inner">
            <input  class="search-input" type="text" id="search-query" placeholder="Search" name="search_key" autocomplete="off" >
        </div>
    </div>
</form>

我想提交给public function actionIndex() { $request = Yii::$app->request; $search_key = $request->get('search_key'); return $this->render('index', ['search_key'=>$search_key]); } ,但是当我提交此web/index?r=search/index&&search_key='something'时,始终会返回form

我需要做什么?

2 个答案:

答案 0 :(得分:0)

如果要在SearchController / Index

中使用参数
   return $this->render('index', ['search_key'=>$search_key]);

你应该在函数声明中声明

public function actionIndex($search_key) 

这样你可以使用渲染调用中传递的$ search_key的值

通过表单提交操作

<form class="search-form" method="get" action="
     <?php echo Yii::$app->urlManager->createAbsoluteUrl(['search/index']); ?>" 
           id="search-form">

结果目标应为

web/index.php?r=search&id=search-form

并且在使用时,请在SearchController / Index

中获取提交

你的actionIndex函数应该是

public function actionIndex($id)
{
  // $id contain the value you assigne in form action 
  // in you case you should obtain the value 'search-form'
  .......
}

答案 1 :(得分:0)

首先,您需要configuring-web-servers正确。

网址不应包含&#39; web / index&#39;。 然后使用ActiveForm

更改您的表单
<?php
use yii\widgets\ActiveForm;
?>
<?php $form = ActiveForm::begin(); ?>
Your form content here.
<?php ActiveForm::end(); ?>

只需更改网址。

<?php echo Url::to(['search/index']); ?>