Php yii2插入数据库

Php yii2插入数据库,php,mysql,yii2,Php,Mysql,Yii2,我试图将数据插入yii中的mysql数据库,但我希望能够访问控制器中的每个输入。 所以我可以把它们放在foreach中,因为它们都有相同的名字,但问题是任何时候 我试图访问输入名,但我得到了这个错误“未定义索引:主题[主题]”。。。例如,视图中不存在输入 这是我的控制器 public function actionCompose() { $topic= new Topic(); $topic->topic_id = Yii::$app->reque

我试图将数据插入yii中的mysql数据库,但我希望能够访问控制器中的每个输入。 所以我可以把它们放在foreach中,因为它们都有相同的名字,但问题是任何时候 我试图访问输入名,但我得到了这个错误“未定义索引:主题[主题]”。。。例如,视图中不存在输入

这是我的控制器

  public function actionCompose()
    {
     $topic= new Topic();  
     $topic->topic_id = Yii::$app->request->post('Topic','[topic]'); 

    foreach ($_POST["Topic[topic]"] as $key => $top) {
      $top=> $topic;
    }
        if ($topic->load(Yii::$app->request->post()) ) {
            $topic->load($topic);
        $topic->save();
        return $this->refresh();
           }
       return $this->render('compose');
       }
这是我的看法

use yii\widgets\ListView;
use yii\data\ArrayDataProvider;
use app\models\MyProfile;
use app\models\LikeDiscussion;
use yii\widgets\ActiveForm;
use common\models\Topic;
use common\models\Comment;
use common\models\Users;
use common\models\Candidate;
use yii\widgets\Pjax;
use yii\helpers\Html;
use frontend\assets\AppAsset;

$this->title = 'My Yii Application';
?>
<?php $form = ActiveForm::begin(); ?>
    <input type="name"  class="form-control"  required="true" name="Topic[topic]" id="topic" placeholder="topic">
    <input type="name"  class="form-control"  required="true" name="Topic[topic]" id="topic" placeholder="topic">
    <input type="name"  class="form-control"  required="true" name="Topic[topic]" id="topic" placeholder="topic"> 
<?php ActiveForm::end(); ?>  

本文中的官方文档介绍了如何使用同一类型的多个模型

以下是一些重要的部分

控制器代码:

<?php

namespace app\controllers;

use Yii;
use yii\base\Model;
use yii\web\Controller;
use app\models\Setting;

class SettingsController extends Controller
{
    // ...

    public function actionUpdate()
    {
        $settings = Setting::find()->indexBy('id')->all();

        if (Model::loadMultiple($settings, Yii::$app->request->post()) && Model::validateMultiple($settings)) {
            foreach ($settings as $setting) {
                $setting->save(false);
            }
            return $this->redirect('index');
        }

        return $this->render('update', ['settings' => $settings]);
    }
}

我不能像这样使用普通表单方法“”,因为表单给了我未定义的“变量:模型”
<?php

namespace app\controllers;

use Yii;
use yii\base\Model;
use yii\web\Controller;
use app\models\Setting;

class SettingsController extends Controller
{
    // ...

    public function actionUpdate()
    {
        $settings = Setting::find()->indexBy('id')->all();

        if (Model::loadMultiple($settings, Yii::$app->request->post()) && Model::validateMultiple($settings)) {
            foreach ($settings as $setting) {
                $setting->save(false);
            }
            return $this->redirect('index');
        }

        return $this->render('update', ['settings' => $settings]);
    }
}
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;

$form = ActiveForm::begin();

foreach ($settings as $index => $setting) {
    echo $form->field($setting, "[$index]value")->label($setting->name);
}

ActiveForm::end();