我正在开发laravel 5.2中的POS系统。从我的销售页面发送一个包含1个bill-info对象和1个产品列表对象数组的数组。我的控制器正在接收数据,但我无法弄清楚如何在我的控制器中提取它们。我已经完成了laravel文档和php。
我试过了。
$data = $request->all();
$billinfo = $data[0]->total;
$productlist=$data[1];
我也试过
$billinfo = $data[0]->object->total;
我也试过
$billinfo = $data[0]->object[0]->total;
我也试过
$billinfo = $data[0]->bill->total;
如果我再次将请求发送到这样的视图:
$data = $request->all();
return json_encode($data);
然后在consol中打印响应。该consol给出以下输出:
Object {id: Array[2]}
>id:
>Array[2]
0:Object
card_number:"0"
customer_id:"0"
date:"06/18/2016"
discount:"0"
grandtotal:"563.5"
payment_method:"cash"
seller_id:""
tax:"15"
total:"490"
__proto__:Object
1:Array[2]
0:Object
stock_id:"5"
subtotal:"244"
unit:"2"
unit_price:"122"
__proto__:Object
1:Object
stock_id:"4"
subtotal:"246"
unit:"2"
unit_price:"123"
我的ajax发送功能是
function ajaxsave(obj)
{
var token=$('input[name=_token]').val();
var baseUrl=document.getElementById("baseUrl").value;
var url=baseUrl+"/sales/savecart";
var id=obj;
$.ajax({
type: "GET",
headers: {'X-CSRF-TOKEN': token},
url:url,
data: {id:id},
datatype:'json',
success: function(data) {
var returndata =JSON.parse(data);
console.log(returndata);
}
});
}
我正在努力学习laravel。这是我的第一个项目。请帮助!!!
我认为如果我返回var_dump($ request-> all())
,这就是网络XHR的输出 array(1) {
["id"]=>
array(2) {
[0]=>
array(9) {
["customer_id"]=>
string(1) "0"
["seller_id"]=>
string(0) ""
["date"]=>
string(10) "06/18/2016"
["payment_method"]=>
string(4) "cash"
["card_number"]=>
string(1) "0"
["total"]=>
string(3) "244"
["discount"]=>
string(1) "0"
["tax"]=>
string(2) "15"
["grandtotal"]=>
string(5) "280.6"
}
[1]=>
array(1) {
[0]=>
array(4) {
["stock_id"]=>
string(1) "5"
["unit"]=>
string(1) "2"
["unit_price"]=>
string(3) "122"
["subtotal"]=>
string(3) "244"
}
}
}
}
答案 0 :(得分:0)
var billinfo = ["id", [... data]];
Laravel将假设的原始数据。
你可以通过PHP GET等提取它,这样可以正常工作,但是如果你期待Laravel魔法那么你需要确保你发送Laravel JSON,例如var billing = {id: 1, record: {id:1, name: 'bob'};
即JSON。 Laravel将解码这个罚款和$ request-> all()将正常工作。此外,如果您需要发送一个JS数据数组,那么var billingInfo = {id:1,arrayOfData:[...]}
P.S。如果获取AJAX请求,Laravel将返回一个JSON对象,因此console.log(...)将显示JSON,但这并不意味着您正在发送格式正确的JSON。
工作格式示例
var billingInfo = {id: 1, email: "person@msn.com", name: "Bob", card: "4448"}