我正在开发一个从 CSV 文件导入邮件列表的系统。为了实现这一点,我使用 Eloquent ORM 将所有电子邮件从 CSV 导入数据库,并在我的模型中使用以下代码Target
:
public function importCSV($file)
{
$destination = 'uploads/';
$file->move($destination, $file->getClientOriginalName());
$csv = new parseCSV();
$csv->auto($destination . $file->getClientOriginalName());
// There must be a Email field in CSV file
if(!in_array('Email', $csv->titles))
throw new Exception("Email field not found", 1);
foreach($csv->data as $data)
{
$this->cont++;
$mailing = new Mailing();
$mailing->target()->associate($this);
$mailing->email = $data['Email'];
$mailing->save();
}
}
导入整个 CSV 文件通常需要很长时间,我想在后台运行这个过程。我知道有几个工具可以做到这一点shell_exec()
,the operator & in the end
等等crontab
......
但我什至不知道如何在命令行 Scope 中仍然使用 Eloquent ORM。使用php script_that_imports.php
不起作用,因为有许多依赖项只能在 Laravel 框架中使用
关于如何运行后台代码但仍使用框架设施的任何想法?