Laravel,无法复制目录或移动目录
Laravel, unable to copyDirectory or moveDirectory
目前我有问题 Laravel 无法使用 moveDirectory 和 copyDirectory 但是 makeDirectory 或 deleteDirectory 工作正常,代码如下:
<?php
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use App\Http\Requests;
use App\Property;
use Intervention;
class PropertyController extends Controller {
public function update(Request $request, $id) {
$property = Property::findOrFail($id);
$oldName = $property->name;
$property->fill($request->all());
if ($request->name == '') {
$property->name = str_slug($request->title);
}
$property->updated_by = Auth::user()->username;
if ($oldName !== $property->name) {
Storage::disk('public')->moveDirectory('images/'.$oldName, 'images/'.$property->name);
}
$property->save();
show_feedback('info', 'Property successfully updated');
return redirect(route('property-management.index'));
}
}
有错误:
BadMethodCallException in PluggableTrait.php line 85:
Call to undefined method League\Flysystem\Filesystem::moveDirectory
我猜 moveDirectory
在 Storage
下不可用。试试下面的代码
先导入文件系统
use Illuminate\Filesystem\Filesystem;
之后创建一个新实例并移动目录。路径是相对于 index.php 我猜。
$file = new Filesystem();
$file->moveDirectory('../storage/app/public/old_folder', '../storage/app/public/new_folder');
已编辑
您可以使用方法注入绕过实例创建
public function update(Request $request,Filesystem $file, $id)
使用File::copyDirectory()
方法。
$success = File::copyDirectory($sourceDir, $destinationDir);
如果所有文件和子目录都成功复制,该方法将 return true。
如果目标目录不存在,将创建它。它将根据需要递归创建。
目前我有问题 Laravel 无法使用 moveDirectory 和 copyDirectory 但是 makeDirectory 或 deleteDirectory 工作正常,代码如下:
<?php
namespace App\Http\Controllers\Backend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use App\Http\Requests;
use App\Property;
use Intervention;
class PropertyController extends Controller {
public function update(Request $request, $id) {
$property = Property::findOrFail($id);
$oldName = $property->name;
$property->fill($request->all());
if ($request->name == '') {
$property->name = str_slug($request->title);
}
$property->updated_by = Auth::user()->username;
if ($oldName !== $property->name) {
Storage::disk('public')->moveDirectory('images/'.$oldName, 'images/'.$property->name);
}
$property->save();
show_feedback('info', 'Property successfully updated');
return redirect(route('property-management.index'));
}
}
有错误:
BadMethodCallException in PluggableTrait.php line 85:
Call to undefined method League\Flysystem\Filesystem::moveDirectory
我猜 moveDirectory
在 Storage
下不可用。试试下面的代码
先导入文件系统
use Illuminate\Filesystem\Filesystem;
之后创建一个新实例并移动目录。路径是相对于 index.php 我猜。
$file = new Filesystem();
$file->moveDirectory('../storage/app/public/old_folder', '../storage/app/public/new_folder');
已编辑
您可以使用方法注入绕过实例创建
public function update(Request $request,Filesystem $file, $id)
使用File::copyDirectory()
方法。
$success = File::copyDirectory($sourceDir, $destinationDir);
如果所有文件和子目录都成功复制,该方法将 return true。
如果目标目录不存在,将创建它。它将根据需要递归创建。