在laravel 4中调用库中的包方法

时间:2014-02-19 11:39:55

标签: php laravel laravel-4

我正在使用mandrill进行laravel项目。

我可以通过添加以下代码

在控制器中发送测试电子邮件
$payload = array(
    'message' => array(
        'subject' => 'Transactional email via Mandrill',
        'html' => 'It works!',
        'from_email' => 'fromemail@example.com',
        'to' => array(array('email'=>'kwanghock@kwanghock.com.sg'))
    )
);

$response = Mandrill::request('messages/send', $payload);

然而,当我将这块代码移到库中时,它给了我一个

Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'Project\Email\Mandrill_lib\Mandrill' not found

我正在使用https://github.com/doxxon/Laravel-Mandrill-Request

中的包

我的图书馆代码如下

<?php namespace Project\Email\Mandrill_lib;

use LaravelMandrillRequest\Facades\LaravelMandrillRequestServiceProvider;
use LaravelMandrillRequest\Facades\MandrillRequest;

class MandrillEmail implements MandrillInterface {

    public function send($emails)
    {
        foreach($emails as $email)
        {
            $payload = array(
                'message' => array(
                    'subject' => 'Transactional email via Mandrill',
                    'html' => 'It works!',
                    'from_email' => 'fromemail@example.com',
                    'to' => array(array('email'=>'kwanghock@kwanghock.com.sg'))
                )
            );

            $response = Mandrill::request('messages/send', $payload);

        }
    }
}

2 个答案:

答案 0 :(得分:1)

你必须user Mandrill:

use LaravelMandrillRequest\Facades\LaravelMandrillRequestServiceProvider;
use LaravelMandrillRequest\Facades\MandrillRequest;
use Mandrill; /// here!

class MandrillEmail implements MandrillInterface {
    ...
}

或者它将尝试通过您自己的命名空间

使用它
Class 'Project\Email\Mandrill_lib\Mandrill' not found

答案 1 :(得分:0)

因此,它没有被正确引用或者没有被作曲家重新认识。 首先检查composer.json文件并检查是否已将路径或命名空间设置为新的库结构(相对于默认应用程序文件夹的新增内容)。然后做一个作曲家dumpautoload。请注意,app中的控制器默认为命名空间。