iはyii2枠組みについて少し学んだが、私は解決カントエラーウィッヒ..yii2ファイルアップロードエラー
私は、フォームを登録に画像を追加しようとしているのです。
ビュー:
<?php $form = ActiveForm::begin(['id' => 'form-signup', 'options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model, 'voornaam')->textInput(['autofocus' => true]) ?>
<?= $form->field($model, 'bedrijf') ?>
<?= $form->field($model, 'telefoon') ?>
<?= $form->field($model, 'username')?>
<?= $form->field($model, 'email') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($model, 'file')->fileInput() ?>
<div class="form-group">
<?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
</div>
<?php ActiveForm::end(); ?>
コントローラ
public function actionSignup()
{
$model = new SignupForm();
if ($model->load(Yii::$app->request->post())) {
if ($user = $model->signup()) {
if (Yii::$app->getUser()->login($user)) {
return $this->goHome();
}
}
}
return $this->render('signup', [
'model' => $model,
]);
}
モデル:
public function signup()
{
if (!$this->validate()) {
return null;
}
$user = new User();
$imageName = $user->username;
$user->file = UploadedFile::getInstance($user,'file');
$user->file->saveAs('uploads/'.$imageName.'.'.$model->file->extension);
$user->picture = 'uploads/'.$imageName.'.'.$model->file->extension;
$user->voornaam = $this->voornaam;
$user->bedrijf = $this->bedrijf;
$user->telefoon = $this->telefoon;
$user->username = $this->username;
$user->email = $this->email;
$user->setPassword($this->password);
$user->generateAuthKey();
return $user->save() ? $user : null;
}
私はエラーを取得しています:ヌル
上のメンバ関数のsaveAsへ コールを()どうしたの? (詳細テンプレートを使用しています)
ありがとうございました。あなたの代わりに$user
の$this
を使うべきか、あなたは
$user=$this
理由を追加する必要があります例えば
$user->file->saveAs(\Yii::getAlias('@webroot').'/uploads/'.$imageName.'.'.$model->file->extension);
ありがとう、これは働いた! しかし、それは次のエラーを与える: が不明なメソッドの呼び出し:Yiiの\ウェブ\のにUploadedFile ::セーブ() 私はYiiの自体 使用のYii \ウェブ\のにUploadedFileからベンダー拡張を使用しています。 私の回線を退避する: $ this-> file-> save(); –
私はsaveAs()を使うべきだと思います。 –
私はそれを稼働させることができました。 $ thisから$ userへの最後の行は、最後にユーザー用のレジスタに保存されました。 $ user-> picture = 'uploads /' .$ imageName。 '。'。$ this-> file-> extension; –