如何解决Yii 2 在字符串
Yii 的新手,我在“发送电子邮件”页面上收到此错误。有问题的字符串是附件的路径和附件名称,我假设 saveAs 函数需要一个字符串。任何想法我缺少什么?
形式:
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
/* @var $this yii\web\View */
/* @var $model app\models\emails */
/* @var $form yii\widgets\ActiveForm */
?>
<div class="emails-form">
<?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>
<?= $form->field($model,'reciever_name')->textInput(['maxlength' => 50]) ?>
<?= $form->field($model,'receiver_email')->textInput(['maxlength' => 200]) ?>
<?= $form->field($model,'subject')->textInput(['maxlength' => 255]) ?>
<?= $form->field($model,'content')->textarea(['rows' => 6]) ?>
<?= $form->field($model,'attachment')->fileInput(['maxlength' => 255]) ?>
<div class="form-group">
<?= Html::submitButton('Save',['class' => 'btn btn-success']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
和控制器:
public function actionCreate()
{
$model = new emails();
if ($model->load(Yii::$app->request->post())) {
// upload the attachment
$model->attachment = UploadedFile::getInstance($model,'attachment');
if($model->attachment)
{
parent::init();
$time = time();
//$model->attachment->saveAs('attachments/'.$time.'.'.$model->attachment->extension);
//$model->attachment = 'attachments/'.$time.'.'.$model->attachment->extension;
}
if($model->attachment)
{
$value = Yii::$app->mailer->compose()
->setFrom(['my_email@gmail.com' => 'Paul'])
->setTo ($model->receiver_email)
->setSubject ($model->subject)
->setHtmlBody ($model->content);
foreach ($model->attachment as $file) {
//$filename = 'attachments/'.$time.'.'.$model->attachment->extension;
$filename = 'attachments/file.jpg';
//var_dump($filename);die();
$file->saveAs($filename);
$value->attach('attachments/file.jpg');
//$value->attach('attachments/'.$time.'.'.$model->attachment->extension);
}
$value->send();
}else{
$value = Yii::$app->mailer->compose()
->setFrom(['my_email@gmail.com' => 'Paul'])
->setTo($model->receiver_email)
->setSubject($model->subject)
->setHtmlBody($model->content)
->send();
}
$model->save();
return $this->redirect(['view','id' => $model->id]);
}
return $this->render('create',[
'model' => $model,]);
}
我尝试过绝对路径和动态路径,但都具有相同的输出,我被卡住了
解决方法
Save as() 函数需要实际路径。所以这是问题。请确保您的路径正确且可访问。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。