ในบทเรียนรู้นี้เรามาเรียนรู้การสร้างฟอร์มสำหรับการแก้ไขทีละหลายๆ record ด้วย Yii Framework ซึ่งเป็นการสร้าง input แบบ multiple input นั่นเอง โดยมีตัวอย่างดังต่อไปนี้

PostController

<?php

namespace frontend\controllers;

use Yii;
use yii\base\Model;
use yii\web\Controller;
use common\models\Post;

class PostController extends Controller
{

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

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

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

ใน view update

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;

$form = ActiveForm::begin();

foreach ($posts as $index => $post) {
    echo $form->field($post, "[".$index."]name")->label($post->name);
}

ActiveForm::end();

ก็สามารถใช้งาน multiple input ในการแก้ไขข้อมูลทีละหลายๆ รายการได้แล้ว

มานพ กองอุ่น

มานพ กองอุ่น : Developer

ความคิดเห็น

หากบทเรียนรู้มีความผิดพลาดประการใด หรือมีข้อเสนอแนะกรุณาแจ้ง contact@programmerthailand.com