2014-02-19 2 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

папка с библиотеками в папке приложения – edelweiss

ответ

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 
+0

LOL благодарит! Добавление «использования Mandrill» – edelweiss

0

Таким образом, композитор не ссылается на него надлежащим образом или не распознается. Сначала проверьте файл composer.json и убедитесь, что вы установили путь или пространство имен в эту новую структуру библиотеки (новые относительно стандартных папок приложений). Затем сделайте композитор dumpautoload. Обратите внимание, что контроллеры в приложении по умолчанию помечены именами.

+0

в моей компоновщике. Я загрузил приложение/библиотеки и сделал dumpautoload. Он по-прежнему дает ту же ошибку – edelweiss

Смежные вопросы