问题描述
我正在尝试使用 Laravel 干预为过去创建的站点创建图标,这一行是创建目录以使用此播种机保存每个站点的图标
我正在尝试运行播种机,在播种机中,我从控制器调用了一个函数,但是当该函数尝试创建目录时,它停止工作。
这是我的播种机的一部分
$route = $this->templateController->resizeImage($logo,$placeName,$domain);
当我使用 xdebug 进行调试时,这行代码正确调用了该函数。
我的控制器:
public function resizeImage($logo,$domain)
{
$img = \Image::make($logo)->resize(32,32,function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
});
$route = 'img' . DIRECTORY_SEParaTOR . $domain . DIRECTORY_SEParaTOR . 'favicon.png';
if (File::exists($route)) {
$img->save(public_path($route));
} else {
$newRoute = File::makeDirectory('img' . DIRECTORY_SEParaTOR . $domain);
$img->save(public_path($route));
}
return $route;
}
一切正常,但是当我调试这一行时
$newRoute = File::makeDirectory('img' . DIRECTORY_SEParaTOR . $domain);
我在工匠控制台中收到此错误
mkdir(): 没有那个文件或目录
在 D:\Programas\laragon\www\google-places-ranking\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.PHP:581 577▕如果($force){ 第 578 章 第579章 580▕ ➜ 581▕ return mkdir($path,$mode,$recursive); 第582章 583▕ 第584章 585▕ * 移动目录。
1
D:\Programas\laragon\www\google-places-ranking\vendor\laravel\framework\src\Illuminate\Filesystem\Filesystem.PHP:581
mkdir("img\testing")
2
D:\Programas\laragon\www\google-places-ranking\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.PHP:261
Illuminate\Filesystem\Filesystem::makeDirectory("img\testing")
注意:当我将此控制器与表单一起使用时,此功能可以正常工作
解决方法
我解决了更换线路
$newRoute = File::makeDirectory('img' . DIRECTORY_SEPARATOR . $domain);
到这里
$newRoute = File::makeDirectory(public_path(). DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR . $domain,0777,true);