Yii2 更新表格数据集不起作用



http://www.yiiframework.com/doc-2.0/guide-input-tabular-input.html#collecting-tabular-input

我根据上面的链接工作,但我的数据没有更新到数据库

我的表结构是

设置

ID 、名称、值

我的控制器设置控制器.php

 <?php
 namespace backendcontrollers;
 use Yii;
 use yiibaseModel;
 use yiiwebController;
 use backendmodelsSetting;
class SettingsController extends Controller
{

public function actionIndex()
{
    $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('update');
    }
    return $this->render('update', ['settings' => $settings]);
  }
}

我的模型是设置.php

<?php
namespace backendmodels;
use Yii;
class Setting extends yiidbActiveRecord
{
  public static function tableName()
  {
     return 'setting';
  }
}

视图位于"设置-更新"下.php

<?php
use yiihelpersHtml;
use yiiwidgetsActiveForm;
$form = ActiveForm::begin();
 foreach ($settings as $index => $setting) {
      echo $form->field($setting, "[$index]value")->label($setting->name);
 }
 ?>
<div class="form-group">
    <?= Html::submitButton('Update', ['class' => 'btn btn-primary']) ?>
</div>
<?php
ActiveForm::end();

我的问题是更新的数据没有保存。但我没有得到任何错误。

您的Setting模型中没有任何规则或安全属性,则此模型的值不可用。

尝试为您的模型添加规则中的保存属性列表。

public function rules()
{
   return [
       [['field1', 'field2',,,,'fieldn'], 'safe'],
   ];
}

最新更新