我認爲你得到的是錯誤,因爲emailOutputTo()
方法無法找到文件
[ErrorException]
file_get_contents('/srv/users/serverpilot/apps/laravelApp/storage/app/logs/logs.txt '):
failed to open stream: No such file or directory
如果你看一下Laravel source for the method emailOutputTo()
您有以下:
public function emailOutputTo($addresses, $onlyIfOutputExists = false)
{
if (is_null($this->output) || $this->output == $this->getDefaultOutput()) {
throw new LogicException('Must direct output to a file in order to e-mail results.');
}
$addresses = is_array($addresses) ? $addresses : func_get_args();
return $this->then(function (Mailer $mailer) use ($addresses, $onlyIfOutputExists) {
$this->emailOutput($mailer, $addresses, $onlyIfOutputExists);
});
}
其中調用:
emailOutput()
它具有以下功能:
protected function emailOutput(Mailer $mailer, $addresses, $onlyIfOutputExists = false)
{
$text = file_get_contents($this->output);
if ($onlyIfOutputExists && empty($text)) {
return;
}
$mailer->raw($text, function ($m) use ($addresses) {
$m->subject($this->getEmailSubject());
foreach ($addresses as $address) {
$m->to($address);
}
});
}
我猜測在emailOutput()
第一行導致了問題:
$text = file_get_contents($this->output);
如果得到創建你的文件,然後我有點難倒,爲什麼它那麼拋出此錯誤是誠實,但無論如何它不會選擇它,所以這可能是與路徑有關。
另一方面,failed to open stream: No such file or directory "emailOutputTo"
的快速谷歌產生以下鏈接:Bug with task scheduling when using emailOutputTo()它不能清楚地看着我像它已解決(雖然它已關閉),除非我失去了一些東西。也許嘗試升級到最新版本的Laravel,看看是否能解決您的問題,如果可以的話。
首先,感謝您的回覆haakym。但是,我有這個代碼相同的錯誤...:/ sendOutputTo方法工作正常,文件'logs.txt'被創建。我認爲這個錯誤與emailOutputTo方法有關。 – sampaioPT
不客氣。哦,我的壞,對不起!我會用一些建議更新我的答案! – haakym
@sampaioPT請檢查我的答案更新 – haakym