如果映像的状态为1(活动),我想将映像移动到另一个目录.我可以移动一个记录,但不能移动所有记录



我想要一个关于如何将处于活动状态的图像转移到另一个目录的简单指南,这是我的代码:

Route::get('/', function () {
$path = public_path('imagesproducts');
$allfiles = scandir($path);
$allfiles = array_diff(scandir($path), array('.', '..'));
$files = array();
foreach ($allfiles as $filename) {
$file= File::get(public_path('images/products/'.$filename));
$files[] = [
"file_name"=>$filename];
}
// return $filename;
foreach($files as $file){
$exists[] = DB::table('tw_products')
// ->where('image', '=', $file['file_name'])
->where('status', '=', 1)
->get('image', '=', $file['file_name']);
// return $exists;
if($exists[] = 'images/products/'.$file['file_name']){
File::copy('images/products/'.$file['file_name'],'images/ActiveProducts/'.$file['file_name']);
echo "File Moved from (images/products/".$file['file_name'] . ")<br />";
}
}
});

现在所有的文件都被复制了,但我不确定为什么它没有过滤图像我想比较DB项目(图像和状态(,如果图像的状态=1,则该图像将被移动到另一个目录。。。

尝试使用count而不是get,这将返回0或1,具体取决于文件是否处于活动状态

foreach($files as $file){
$exists = DB::table('tw_products')
->where('image', '=', $file['file_name'])
->where('status', '=', 1)
->count();
if($exists){
File::copy('images/products/'.$file['file_name'],'images/ActiveProducts/'.$file['file_name']);
echo "File Moved";
}
}

我建议你把它作为命令或修补程序来做,以避免超时

最新更新