1
Failed to prepare SQL: INSERT INTO `form` (`name`, `email`, `age`, `height`, `weight`, `city`, `techies`, `english_level`, `images`) VALUES (:qp0, :qp1, :qp2, :qp3, :qp4, :qp5, :qp6, :qp7, :qp8)
私のyii2データベースにフォームからデータを入れようとすると、そのエラーが発生します。その目的のためにモデルを作成し、コントローラでアクションを作成し、データを送信するためにActiveFormで表示しました。今すぐ私はそのフォームからデータを取得し、それを私のdbに入れてください。 エラーは、この行で発生します。私のyii2サイトで未定義のオフセット1
if (($loaded = $Form->load(Yii::$app->request->post())) && $Form->save())
それは私のコントローラのアクションのための1つの行です:
public function actionForm()
{
$Form = new Form();
if(!$Form->validate()){
var_dump("fuck");
}
if (($loaded = $Form->load(Yii::$app->request->post())) && $Form->save()) {
return 'ok';
}elseif($loaded){
var_dump($Form->getErrors());
}
return $this->render('form',array(
'Form' => $Form,
));
}
私のリクエストデータ:
$_GET = [
'r' => 'site/form',
];
$_POST = [
'_csrf' => 'MGhXNV82cTdkBTFPC3k4VAVRZUEoBDxZUi4cRSpnAUZaMTxxbwZEBQ==',
'Form' => [
'name' => 'Rost',
'email' => '[email protected]',
'age' => '22',
'height' => '12',
'weight' => '1212',
'city' => '1212',
'techies' => 'yes_camera',
'english_level' => 'starter',
'images' => [
'',
],
],
];
$_FILES = [
'Form' => [
'name' => [
'images' => [
'user.png',
],
],
'type' => [
'images' => [
'image/png',
],
],
'tmp_name' => [
'images' => [
'W:\\XAMPP\\tmp\\php649A.tmp',
],
],
'error' => [
'images' => [
0,
],
],
'size' => [
'images' => [
445,
],
],
],
];
と私はGIIによって生成されたモデルを持っています。
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "form".
*
* @property integer $id
* @property string $name
* @property string $email
* @property integer $age
* @property integer $height
* @property integer $weight
* @property string $city
* @property string $techies
* @property string $english_level
* @property string $images
* @property resource $photo_1
* @property resource $photo_2
* @property resource $photo_3
* @property resource $photo_4
* @property resource $photo_5
*/
class Form extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'form';
}
/**
* @inheritdoc
*/
public function rules()
{
return [
[['name', 'email', 'age', 'height', 'weight', 'city', 'techies', 'english_level'], 'required'],
[['name', 'email', 'city', 'techies', 'english_level'], 'string'],
[['images', 'photo_1', 'photo_2', 'photo_3', 'photo_4', 'photo_5'], 'file'],
[['age', 'height', 'weight'], 'integer'],
];
}
/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'name' => 'Name',
'email' => 'Email',
'age' => 'Age',
'height' => 'Height',
'weight' => 'Weight',
'city' => 'City',
'techies' => 'Techies',
'english_level' => 'English Level',
'photo_1' => 'Photo 1',
'photo_2' => 'Photo 2',
'photo_3' => 'Photo 3',
'photo_4' => 'Photo 4',
'photo_5' => 'Photo 5',
];
}
}
[「イメージの」]キーが配列され、クエリで 'images'列がある - あなたは空に保存しようとしていますそこに配列があるか、この列に何らかの処理が含まれていますか? – Bizley
サーバーのある場所、たとえば - @ frontend/web/imagesに画像を保存し、画像の名前のみをデータベースの列に保存することをお勧めします。あなたのパフォーマンスに打撃を与えてそのようなBlobを取得する。 –