我试图在我的Symfony2项目中调用路由时遇到一些问题,因为我指向的控制器需要参数(即用户名和密码)才能实例化。
以下是这种情况:
我将Kashflow集成到我的项目中,我需要做的一件事就是能够将我的CRM的发票付款发送到Kashflow帐户。当"推付款"单击按钮,它运行一个ajax调用,它将所需数据发送到我的Kashflow控制器中名为prepareInvoicePayment()的方法,并且出于测试目的,只需返回请求,以便我可以看到返回的内容。
我的阿贾克斯:
$('.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 \控制器\ KashflowController :: __构建体()
所以,我的问题是,如何在路由文件中传递这些值?这甚至是这样做的方式吗?如果可能的话,我宁愿在我的parameters.yml文件中设置我的用户名和密码,然后引用它 - 但无论哪种方式,我都需要能够传递这些参数才能使调用工作。
感谢任何帮助,谢谢!