我正在努力与表格输入和图像上传。我没有使用任何扩展/小部件。表单工作完美,但-没有图像上传。
我创建了两个模型:EventForm
(单个表单)和EventArtwork
(可以是多个表单)
我有一个函数protected function handlePostSave
,我通常在动作中这样使用(例如actionCreate),但这对数组不起作用:
protected function handlePostSave(EventArtwork $model)
{
if ($model->load(Yii::$app->request->post())) {
$model->upload = UploadedFile::getInstance($model, 'upload');
if ($model->validate()) {
if ($model->upload) {
$filePath = 'uploads/' . $model->upload->baseName . '.' . $model->upload->extension;
if ($model->upload->saveAs($filePath)) {
$model->image = $filePath;
}
}
if ($model->save(false)) {
return $this->redirect(['view', 'id' => $model->id]);
}
}
}
}
然后像这样使用它:
public function actionUpdate($id)
{
$model = $this->findModel($id);
$modelArtworks = $model->eventArtworks;
$formArtworks = Yii::$app->request->post('EventArtwork', []);
$this->handlePostSave($formArtworks);
foreach ($formArtworks as $i => $formArtwork) {
//other stuff
}
它返回:app\controllers\EventFormController::handlePostSave(): Argument #1 ($model) must be of type app\models\EventArtwork, array given, called in C:\Users\edgar\Projects\yii2-dynamic-tabular-form-app\controllers\EventFormController.php on line 135
我好像在和数组做斗争。
我已经做了什么在**Gist**。我做错了什么?
谢谢大家
埃德加
我希望图像(S)/文件(S)被上传,保存在数据库中。
1条答案
按热度按时间jgwigjjp1#
您发送值$formArtworks = Yii::$app-〉request-〉post('EventArtwork',[]);虽然总是会有一个数组,而且handlePostSave函数需要EventArtwork模型,但由于这个原因,错误
值得去做: