我在模型photo
中有一个名为members
的字段。我想访问photo
从前端和后端。所以我在backend\web\uploads
和frontend\web\uploads
中创建了两个名为images的文件夹,我的想法是同时将照片保存在后端和前端。
如果我必须在frontend \ backend中保存图像,我会使用此代码
if($model->photo != null)
{
$model->photo->saveAs(\Yii::$app->basePath . '/web/uploads/photo/'.$model->id."_".$model->photo);
}
但我不能将此代码用于我的目的,因为我必须将它保存在前端和后端。我怎么能这样做?
答案 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);
配置中,并在您的视图中使用它。