2016-08-01 97 views
2

当前遇到一个奇怪的错误或我可能会监督的东西。 (Laravel框架)Laravel Artisan&imap_open()

我有一个普通的HomeController,我正在做一个成功的imap_open()连接。 (我可以使用浏览器读出完整的邮箱)

但是,一旦我输送此功能的工匠命令,它返回我:

[Symfony\Component\Debug\Exception\FatalThrowableError] 
Call to undefined function App\Console\Commands\imap_open() 

我缺少什么,或者这只是简单的不可能?

+0

如上所述,App \ Console \ Commands中缺少该功能,如果您正确添加它,请编辑您的帖子与代码。 – Vuldo

+0

imap_open()是PHP中的默认函数(在我的安装中启用,因为相同的代码在浏览器中工作):http://php.net/manual/en/function.imap-open.php –

回答

0

您尝试能够调用它虽然Artisan,但你需要添加一个Artisan功能,因为Artisan不知道你想做什么,请查看文档部分Writing Commandshere

现在你调用一个未知Artisan功能,这就是为什么你得到这个

0

你的代码是目前在App \控制台\命令命名空间。

由于您在未指定名称空间的情况下调用imap_open函数,因此它正在查找App \ Console \ Command \ imap_open函数并找不到它。

因为它是一个默认的PHP函数,这里的关键是使用\

所以一定要这样称呼它,为它调用的全局命名空间:

$res = \imap_open(...params); 

而且确保IMAP编译/启用了php cli(因为cli的php.ini与web不同)

+0

我试过确实如此,但是这导致了: [Symfony \ Component \ Debug \ Exception \ FatalThrowableError] 调用未定义的函数imap_open() –

+0

控制器在web上下文中运行,Artisan命令在cli上下文中运行。这两个没有相同的php.ini。你能检查一下imap扩展是否为php-cli启用了吗? – Atrakeur

+0

你有关于如何检查这个问题的快速解决方案吗? –