我是laravel的新人。我通过邮递员发送这种类型的回复。在Laravel控制器中,我在$ request中得到了这个回复。
[{
"id": 40,
"cname": "Ramesh",
"constraint_value": "",
"r_id": "6",
"rtype_id": null,
"deleted_at": null,
"created_at": null,
"updated_at": null,
"input": "111",
"input2": "111"
}, {
"id": 45,
"cname": "Suresh",
"constraint_value": "",
"r_id": "6",
"rtype_id": null,
"deleted_at": null,
"created_at": null,
"updated_at": null,
"input": "222",
"input2": "222"
}, {
"id": 49,
"cname": "Raj",
"constraint_value": "",
"r_id": "6",
"rtype_id": null,
"deleted_at": null,
"created_at": null,
"updated_at": null,
"input": "333",
"input2": "333"
}]
我在
面临困难如何计算我在$ request中收到的数组中的对象总数。我曾经使用count($ request)或sizeOf($ request)但它只返回1,尽管有3个数组。帮助我。
如何通过这样的数组保存数据库中的数据。我想保存input和input2的值。
答案 0 :(得分:0)
尝试将其转换为数组:
$data = json_decode($request, true);
$count = count($data); // Count number of elements.
Model::insert($data); // Insert all elements into DB.
不要忘记先验证任何输入,然后将除时间戳之外的所有字段添加到$fillable
数组中。
答案 1 :(得分:0)
你可以试试这个..
$data = [{},{}]; // your response
$count = 0;
foreach($data as $obj)
{
Model::create($obj); //save the model
$count ++;
}
echo $count // your count
答案 2 :(得分:0)
退出简单
$request ='[ {"id":40,"cname":"Ramesh","constraint_value":"","r_id":"6","rtype_id":null,"deleted_at":null,"created_at":null,"updated_at":null,"input":"111","input2":"111"}, {"id":45,"cname":"Suresh","constraint_value":"","r_id":"6","rtype_id":null,"deleted_at":null,"created_at":null,"updated_at":null,"input":"222","input2":"222"}, {"id":49,"cname":"Raj","constraint_value":"","r_id":"6","rtype_id":null,"deleted_at":null,"created_at":null,"updated_at":null,"input":"333","input2":"333"}]';
$request = (array)json_decode($request, true);
现在正常使用它们。
答案 3 :(得分:0)
我得到了解决方案。我在从angularjs.s发送数据时犯了错误。我直接发送POST请求而没有创建像var data = { 'data':my_request}
这样的对象。这就是为什么请求在laravel中使用实例。但是,当我开始通过创建它的工作来发送数据时。这是我第一个问题的解决方案。帮助我如何将收到的数据存储在数据库中。
答案 4 :(得分:0)
可能晚了,但将来可能会帮助某个人。首先。您需要像这样遍历对象数组
foreach($request->all() as $key => $value){
$model = new Model();
$model->attribute1 = $value['attribute1'];
$model->attribute2 = $value['attribute1'];
$model->attributeN = $value['attributeN']; // where N is infinite # of attr
$model->save();
}
所以发生的事情是,每次循环迭代时,它都会在循环内创建一个Model
类型的新对象,并从数组键值分配对象属性,并保留在DB
中,并且重复直到数组中的所有对象完成。
$model = new Model();
是必需的,以便每个时间循环都可以迭代它创建一个新对象并保持不变。如果u在每次N
迭代时都不创建对象,则该循环只能保存一个对象。如果您在构造函数中创建模型对象,并且在构造函数运行时实例化了一次,则可能会发生这种情况。
希望这会有所帮助。