У меня возникли проблемы с попыткой вызвать маршрут в моем проекте Symfony2 в качестве контроллера, на который я указываю, чтобы для создания экземпляра требуются параметры (а именно имя пользователя и пароль).Передача аргументов конструктора в файле ym маршрутизации в Symfony
Вот ситуация:
Я интегрируя Kashflow в мой проект, и одна из вещей, которые мне нужно сделать, чтобы иметь возможность отправлять платежи счета-фактуры от моего CRM на счет Kashflow. Когда нажата кнопка «Push Payment», она запускает вызов ajax, который отправляет необходимые данные методу prepareInvoicePayment() в моем контроллере Kashflow и для целей тестирования просто возвращает запрос, чтобы я мог видеть, что возвращается.
Мой Аякса:
$('.push-kashflow-payment').on('click', function(e) {
var answer = confirm('Are you sure?');
var invoiceID = $(this).attr('id').split("_")[0];
var accountID = $(this).attr('id').split("_")[1];
var method = 2;
var amount = $(this).parent().parent().find('.amount').html();
if (answer) {
$.post('/kashflow-push-payment', { invoiceID: invoiceID, method: method, accountID: accountID, amount: amount }
).done(function(response) {
console.log(response);
});
}
e.preventDefault();
return false;
});
Проблема:
МОЯ файл маршрутизации следующая запись:
app_push_kashflow_payment:
path: /kashflow-push-payment
defaults: { _controller: AppBundle:Kashflow:prepareInvoicePayment }
Но класс Kashflow требует имя пользователя и пароль, который будет принят в конструктор:
function __construct($user, $pass)
{
// Set the username and password
$this->username = $user;
$this->password = $pass;
// Hide some simple XML errors we dont want to see
libxml_use_internal_errors(true);
}
Когда запрос Ajax передается на контроллер, я получаю возвращается следующая ошибка:
Предупреждение: Отсутствует аргумент 1 для AppBundle \ Controller \ KashflowController :: __ конструкт()
Итак, мой вопрос в том, как передать эти значения в файле маршрутизации? Это даже способ сделать это? Если возможно, я предпочел бы установить свое имя пользователя и пароль в файле parameters.yml, а затем ссылаться на это - но в любом случае мне нужно иметь возможность передавать эти параметры, чтобы вызов работал.
Любая помощь приветствуется, спасибо!
Использование инъекций и услуг зависимостей – Robert