在yii2

时间:2015-11-16 09:50:57

标签: yii2 yii2-advanced-app

我在模型photo中有一个名为members的字段。我想访问photo 从前端和后端。所以我在backend\web\uploadsfrontend\web\uploads中创建了两个名为images的文件夹,我的想法是同时将照片保存在后端和前端。 如果我必须在frontend \ backend中保存图像,我会使用此代码

if($model->photo  != null)
                        {
                            $model->photo->saveAs(\Yii::$app->basePath . '/web/uploads/photo/'.$model->id."_".$model->photo);

                        }

但我不能将此代码用于我的目的,因为我必须将它保存在前端和后端。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

您可以创建一个symbolyc链接,这样您就不必将文件保存在两个目录中。

在Linux中

只需从控制台运行 ln 命令,例如你有 backend \ web \ uploads 目录,然后你做 frontend \ web \ uploads 作为后端目录的符号链接。

在linux中运行:

ln -s backend/web/uploads frontend/web/uploads
在Windows中,打开命令promt,转到你的yii2目录并运行:

mklink /D frontend\web\uploads backend\web\uploads

请注意 mklink 输入的顺序与linux中 ln 命令的顺序相反

答案 1 :(得分:1)

理想情况下,您应该创建静态子域,例如90,并将图片保存到一个位置。

在您的情况下,您应该将保存代码复制到前端和后端文件夹。

例如:

您可以将commons文件夹放在公共文件夹中。您的保存代码现在应该引用该文件夹:

static.yourdomain.com

然后,您可以将基本图片网址保存在应用程序的$model->photo->saveAs('@common/uploads/photo/'.$model->id."_".$model->photo); 配置中,并在您的视图中使用它。