ในบทเรียนรู้นี้เรามาเรียนรู้การสร้างฟอร์มสำหรับการแก้ไขทีละหลายๆ 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 ในการแก้ไขข้อมูลทีละหลายๆ รายการได้แล้ว
ความคิดเห็น