2015-12-23 3 views
8

Я хочу отправить данные формы из моего представления в контроллер, чтобы вставить данные в базу данных. Я создал модель и контроллер, но когда я отправляю форму контроллеру с действием. Он просто обновил страницу, данные не передаются контроллеру, загружается только индексная страница. Это моя форма:вопрос при отправке данных формы контроллеру в yii2

<div class="container"> 
<!--<div style="text-align:right;" class="row"> 
    <h3>ارسال توییت جدید</h3> 
</div>--> 
    <div class="row"> 
    <div class="col-md-12" > 
       <div class="widget-area no-padding blank"> 
       <div class="status-upload"> 
       <!--<form method="POST" action="?r=twit/send-twit">--> 
       <?php 
       $form = ActiveForm::begin([ 
        'options' => ['action' => '?r=twit/send-twit'] 
       ]); 
       ?> 
        <?= $form->field($model,'twit')->textarea(); ?> 
        <!--<textarea name="twitContent" style="text-align:right;" placeholder="...توییت خود را وارد کنید" ></textarea>--> 
        <!--<ul> 
        <li><a title="" data-toggle="tooltip" data-placement="bottom" data-original-title="Audio"><i class="fa fa-music"></i></a></li> 
        <li><a title="" data-toggle="tooltip" data-placement="bottom" data-original-title="Video"><i class="fa fa-video-camera"></i></a></li> 
        <li><a title="" data-toggle="tooltip" data-placement="bottom" data-original-title="Sound Record"><i class="fa fa-microphone"></i></a></li> 
        <li><a title="" data-toggle="tooltip" data-placement="bottom" data-original-title="Picture"><i class="fa fa-picture-o"></i></a></li> 
        </ul>--> 
        <!--<button name="submit" type="submit" class="btn btn-success green"><i class="fa fa-send"></i> ارسال توییت</button>--> 
        <?= Html::SubmitButton('ارسال',['class' => 'btn btn-success green']); ?> 
       <!--</form>--> 
       <?php ActiveForm::end(); ?> 
       </div><!-- Status Upload --> 
      </div><!-- Widget Area --> 
      </div> 
    </div> 
</div> 

и вот мой контроллер действия, который находится в twitController классе и не будет выполняться, а данные не передаются там:

public function actionSendTwit() 
    { 
     $request = Yii::$app->request; 
     $sag = $request->post('twit'); 
     die(); 
     if ($request->post('twit')){ 
      $twitContent = $request->post('twit'); 
      Twit::sendTwit($twitContent); 
      \yii::$app->response->redirect('?r=twit/index',301)->send(); 
     } 
    } 

ответ

7

попробовать, как этот

$form = ActiveForm::begin([ 
    'action' => ['controller/action'], 
]); 

вместо этого

$form = ActiveForm::begin([ 
       'options' => ['action' => '?r=twit/send-twit'] 
      ]); 

См. Docs