Yii2:異なるテーブルに保存された画像

年をとる

ここに私のコントローラー:

    $model = new VehicleType();
    if ($model->load(Yii::$app->request->post())) {
        if($model->validate()){

            $model->save();
            $id = $model->id;
            $model->file = UploadedFile::getInstance($model, 'file');
            if($model->file){
                $id = $model->id;
                $imageName = "vehicletype_".$id.'_'.getdate()[0];
                $model->file->saveAs('uploads/'.$imageName.'.'.$model->file->extension);

                $station = VehicleType::findOne($id);
                $station->image = '@web/uploads/'.$imageName.'.'.$model->file->extension;
                $station->save();
            }
            return $this->redirect(['vehicletype/index']);
        }
    } else {
        return $this->renderAjax('create', [
            'model' => $model,

        ]);
    }
}

私の見解:

 <div class="row">
        <div class="col-lg-5">
            <?php $form = ActiveForm::begin(['id' => 'station-form', 'options' => ['enctype' => 'multipart/form-data']]); ?>
                <?= $form->field($model, 'name') ?>              

                <?= $form->field($model, 'description')->textarea() ?>
                <?= $form->field($model, 'file')->fileInput() ?>
                <div class="form-group">
                    <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
                </div>
            <?php ActiveForm::end(); ?>

        </div>

私のモデル:

public function rules()
{
    return [
        [['description'], 'string'],
        [['record_status'], 'integer'],
        [['name', 'image'], 'string', 'max' => 255]
    ];
}

/**
 * @inheritdoc
 */
public function attributeLabels()
{
    return [
        'id' => 'ID',
        'name' => 'Name',
        'description' => 'Description',
        'image' => 'Image',
        'record_status' => 'Record Status',
    ];
}

/**
 * @return \yii\db\ActiveQuery
 */
public function getVehicles()
{
    return $this->hasMany(Vehicles::className(), ['vehicle_type_id' => 'id']);
}

}

これでアップロードできる写真/投稿は1つだけで、1つの投稿に複数の写真を含めたいので、新しいテーブル呼び出し ' Image'を作成して写真を保存し、1対多の関係にします。

しかし、問題が発生しました。1つのフォームから2つのテーブルにデータを追加するにはどうすればよいですか。

Yii2基本テンプレートを使用しています

ありがとう

海岸

ステップ1

まず、vehicletypeモデルに2つの変数を作成します

        public $uploadedImages;
        public $imageforNewtable = array();

ステップ2

モデルルールでこのimageforNewtable変数に必ず言及してください。

        [['imageforNewtable'], 'image', 'extensions' => 'png, jpg, JPEG'],

ステップ3

あなたのフォームで:

        <?php $form = ActiveForm::begin(['id' => 'station-form', 'options' => ['enctype' => 'multipart/form-data']]); ?>


        <?= $form->field($model, 'imageforNewtable[]')->fileInput(['accept' => 'image/*']); ?>

ステップ4

コントローラ内:

$model->uploadedImages = UploadedFile::getInstances($model,'imageforNewtable');

        // Make sure to put "Instances" (plural of Instance) for uploading multiple images

$model->imageforNewtable = array(); // To avoid blank entries as we have entries in $_FILES not in $_POST.

            foreach ($model->uploadedImages as $singleImage) 
            {
            $model->imageforNewtable[] = time() . '_' . $singleImage->name;
            }

画像テーブルにデータを一括挿入します。

    $bulkInsertforimages = array(); //defined benchInsert array for images
    $columnsArray = ['blog_id', 'image']; //Column names in which bulk insert will take place.                
    if ($model->imageforNewtable != '') {
        foreach ($model->imageforNewtable as $singleData) {
            $bulkInsertforimages[] = [
                'blog_id' => $model->id,
                'image' => $singleData,
            ];
        }
    }


    if (count($bulkInsertforimages) > 0) {
        $command = \Yii::$app->db->createCommand();
        $command->batchInsert('YOUR_IMAGE_TABLE', $columnsArray, $bulkInsertforimages)->execute();
    }

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

結合されたテーブルYii2の値の取得

分類Dev

異なるテーブルからのサンプリング条件yii2

分類Dev

JQueryで最初のTDに保存されたテーブルの値に基づいて2番目のTDに保存された画像を非表示にする方法は?

分類Dev

異なるピクセルで保存されたコピー画像をPILで元の画像に

分類Dev

Yii2: モジュールの移行によって作成されたテーブルを変更するには?

分類Dev

結合されたテーブルyii2から配列インデックスにアクセスする

分類Dev

2つの異なるテーブルからネストされたforeach

分類Dev

Yii2画像名はデータベースに保存されていませんが、フォルダに保存されています

分類Dev

Yii2 、ログインしたユーザーのユーザー名を別のテーブルに自動的に保存する方法は?

分類Dev

Yii2。渡された引数に応じて異なるアクション

分類Dev

EF-クラスが異なるテーブルに分割されました

分類Dev

2つの異なるテーブルの2つの外部キーにリンクされた1つのテーブルの1つの主キー?

分類Dev

グループ化されたテーブルセクションに異なる背景画像を設定する方法..?

分類Dev

yii2のモデルを介してデータが保存されない

分類Dev

2つの異なるテーブルカウントがHiveテーブルに挿入されます

分類Dev

yii2 のビューで、ルックアップ テーブルに外部キーの値が表示されない

分類Dev

Yii2-モデルがYii2のforeachループに保存されていません

分類Dev

異なる外部キーによって参照される2回結合されたテーブルのカウントクエリ

分類Dev

Yii2 Select2-更新時に選択された値-ジャンクションテーブル(多対多)

分類Dev

2つの異なるテーブルのグループ化された行の合計

分類Dev

yii2主キーなしでテーブルを更新する

分類Dev

Yii2の異なるテーブルからの2つのフィールドの一意の検証

分類Dev

SQLは、2つの同一のテーブル(異なるデータ)から人ごとにグループ化された最大日付を取得します

分類Dev

Yii2でYii :: $ app-> security-> encodeByKey()を使用して暗号化されたデータを保存するにはどうすればよいですか?

分類Dev

XSLTは、ソートされたデータを異なるテーブルに分割します

分類Dev

YII2のボタンをクリックした後にテーブルの配列を取得する方法

分類Dev

Javascript-ローカルに保存された大きな画像を表示する

分類Dev

許可されたユーザーのみがファイルにアクセスするYii2

分類Dev

ボケ:jupyterノートブックに表示されるものとは異なる保存されたsvg

Related 関連記事

  1. 1

    結合されたテーブルYii2の値の取得

  2. 2

    異なるテーブルからのサンプリング条件yii2

  3. 3

    JQueryで最初のTDに保存されたテーブルの値に基づいて2番目のTDに保存された画像を非表示にする方法は?

  4. 4

    異なるピクセルで保存されたコピー画像をPILで元の画像に

  5. 5

    Yii2: モジュールの移行によって作成されたテーブルを変更するには?

  6. 6

    結合されたテーブルyii2から配列インデックスにアクセスする

  7. 7

    2つの異なるテーブルからネストされたforeach

  8. 8

    Yii2画像名はデータベースに保存されていませんが、フォルダに保存されています

  9. 9

    Yii2 、ログインしたユーザーのユーザー名を別のテーブルに自動的に保存する方法は?

  10. 10

    Yii2。渡された引数に応じて異なるアクション

  11. 11

    EF-クラスが異なるテーブルに分割されました

  12. 12

    2つの異なるテーブルの2つの外部キーにリンクされた1つのテーブルの1つの主キー?

  13. 13

    グループ化されたテーブルセクションに異なる背景画像を設定する方法..?

  14. 14

    yii2のモデルを介してデータが保存されない

  15. 15

    2つの異なるテーブルカウントがHiveテーブルに挿入されます

  16. 16

    yii2 のビューで、ルックアップ テーブルに外部キーの値が表示されない

  17. 17

    Yii2-モデルがYii2のforeachループに保存されていません

  18. 18

    異なる外部キーによって参照される2回結合されたテーブルのカウントクエリ

  19. 19

    Yii2 Select2-更新時に選択された値-ジャンクションテーブル(多対多)

  20. 20

    2つの異なるテーブルのグループ化された行の合計

  21. 21

    yii2主キーなしでテーブルを更新する

  22. 22

    Yii2の異なるテーブルからの2つのフィールドの一意の検証

  23. 23

    SQLは、2つの同一のテーブル(異なるデータ)から人ごとにグループ化された最大日付を取得します

  24. 24

    Yii2でYii :: $ app-> security-> encodeByKey()を使用して暗号化されたデータを保存するにはどうすればよいですか?

  25. 25

    XSLTは、ソートされたデータを異なるテーブルに分割します

  26. 26

    YII2のボタンをクリックした後にテーブルの配列を取得する方法

  27. 27

    Javascript-ローカルに保存された大きな画像を表示する

  28. 28

    許可されたユーザーのみがファイルにアクセスするYii2

  29. 29

    ボケ:jupyterノートブックに表示されるものとは異なる保存されたsvg

ホットタグ

アーカイブ