Quickbooks Desktop с Laravel «QuickBooks_Loader :: load (): не удалось открыть файл» - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь реализовать consolibyte / quickbooks- php в моем проекте Laravel 6. Это работает нормально, если я вызываю действие очереди из контроллера. Но теперь я хочу сделать это asyn c с работой Laravel. Вот где я получаю ошибку:

Я получаю эту ошибку:

 QuickBooks_Loader::load(): Failed opening required '/var/www/html/buyforme/b4m-aportal-v2/vendor/consolibyte/quickbooks/QuickBooks/Driver/.php' (include_path='.:/usr/share/php:/var/www/html/buyforme/b4m-aportal-v2/vendor/consolibyte/quickbooks')

Эта строка c, на которую она ссылается, находится здесь в Loader. php:

if (QUICKBOOKS_LOADER_REQUIREONCE)
{
    require_once QUICKBOOKS_BASEDIR . $file;
}

Я зарегистрировался QUICKBOOKS_BASEDIR . $file, и путь к нему правильный, и файл там присутствует. Разрешения также действительны.

Задание:
Класс AddInventoryIntoQB реализует ShouldQueue {использовать Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

/**
 * Item object.
 */
protected $item;
/**
 * @var LaravelQbd
 */
protected $QBD;


/**
 * Create a new job instance.
 *
 * @param Item $item
 */
public function __construct(Item $item)
{
    $this->QBD  = new LaravelQbd;
    $this->item = $item;
}

/**
 * Execute the job.
 *
 * @return void
 */
public function handle()
{
    $this->QBD->enqueue(QUICKBOOKS_ADD_INVENTORYITEM, $this->item);
}

LaravelQbd:

 /**
 * User Configuration File Array
 */
protected $dsn;

protected $config;

protected $map = [];

public function __construct()
{
    $this->config = config('quickbooks');

    $this->dsn    = $this->config['qb_dsn'];
}

public function enqueue($action, $object, $priority = 0, $extra = null, $user = null)
{
    $Queue = new \QuickBooks_WebConnector_Queue($this->dsn);

    return $Queue->enqueue($action, $object, $priority, $extra, $user);
}

Это работает, только если я не запускаю его как работу. Что я делаю не так?

1 Ответ

1 голос
/ 24 января 2020

Наиболее вероятная причина этой ошибки:

QuickBooks_Loader :: load (): Требуется сбой при открытии '/ var / www/html/buyforme/b4m-aportal-v2/vendor/consolibyte/quickbooks/QuickBooks/Driver/.php'

Неправильно сформирован или пустая dsn строка подключения. То есть код ищет драйвер базы данных, а указанный вами драйвер базы данных не существует .

В этом коде:

public function __construct()
{
    $this->config = config('quickbooks');

    $this->dsn    = $this->config['qb_dsn'];
}

Вы:

  • Вы на 100% уверены, что для qb_dsn установлено даже значение?
  • Вы на 100% уверены, что установлена ​​допустимая строка подключения к базе данных DSN?
  • есть ли какие-либо символы в строке, которые должны быть закодированы в URL, на самом деле URL закодированы правильно?

Можете ли вы вставить свою строку dsn (с маскированным / удаленным паролем)?

...