2014-02-19 32 views
0

我正在使用mandrill作爲laravel中的項目。在laravel 4中調用庫中的包方法

我能送測的郵件了在控制器中加入下面的代碼

$payload = array(
    'message' => array(
     'subject' => 'Transactional email via Mandrill', 
     'html' => 'It works!', 
     'from_email' => '[email protected]', 
     'to' => array(array('email'=>'[email protected]')) 
    ) 
); 

$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' => '[email protected]', 
        'to' => array(array('email'=>'[email protected]')) 
       ) 
      ); 

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

     } 
    } 
} 
+0

是什麼意思「當我移動到圖書館」?什麼是圖書館? – carousel

+0

我composer.json自動加載中的應用程序文件夾 – edelweiss

回答

1

你必須user山魈太:

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

class MandrillEmail implements MandrillInterface { 
    ... 
} 

或者它會嘗試通過您自己的命名空間來使用它

Class 'Project\Email\Mandrill_lib\Mandrill' not found 
+0

大聲笑謝謝!添加'使用Mandrill'的作品 – edelweiss

0

那麼它沒有被正確引用或不被作曲家重新認識。 首先檢查您的composer.json文件,並檢查是否已將路徑或名稱空間設置爲新的庫結構(新的相對於默認應用程序文件夾)。然後做一個作曲家dumpautoload。請注意,應用程序中的控制器默認命名空間。

+0

下的庫文件夾我添加了應用程序/庫,並做了一個dumpautoload。它仍然給出了相同的錯誤 – edelweiss