【发布时间】:2020-10-20 11:02:15
【问题描述】:
i want to insert a record of form fields in table and also values from session array
我有一个包含以下字段的表单
name,email,address
我有这样的会话数组'cartS'
"cartS": [
{
"pid": "1",
"qnty": "3"
},
{
"pid": "2",
"qnty": "2"
}
],
所以我有一个表格,其中包含以下字段
---------------------------------------------------------------------------------------------
id(auto increment) uid(user's id) pid(product id) qnty(quantity) name email address
---------------------------------------------------------------------------------------------
这里我有model 称为订单模型
我有一个controller,其中有public function placeorder(Request $request)
我可以使用$request从表单字段中获取价值
但是在会话数组(关联数组)中的pid 和qnty 呢
如果我执行 foreach 循环,那么它只给出一个键的值,但我在会话数组中有 2 个键
$sessionCart=Session::get('cartS');
foreach($sessionCart as $key=>$value){
$pid=$value['pid'];
$qnty=$value['qnty'];
}
如果我是return $pid,那么它只给出第一个键的pid,但不是全部
以下是我的placeorder function
public function placeOrder(Request $request){
$sessionUser=Session::get('userS'); // user's name,email are stored in sessionarray called 'userS'
$sessionEmail=$sessionUser['email']; // i am accessing email of session user
$getUid=customerModel::where('email',$sessionEmail)->count();
// counting userid(uid) from table which should be only one unique in table
if($getUid==1){
$uid=customerModel::where('email',$sessionEmail)->value('uid');
// here i am getting uid of that user
// here i am requesting value of form field
$name=$request->name;
$email=$request->email;
$address=$request->address;
$order=new orderModel;
$sessionCart=Session::get('cartS');
if($sessionCart){
// if $sessioncart is true then following code should run and rest is my garbage code.....
foreach($sessionCart as $key=>$value){
$pid=$value['pid'];
$qnty=$value['qnty'];
}
$order->uid=$uid;
$order->pid=$pid;
$order->quantity=$qnty;
$order->customer_name=$name;
$order->customer_email=$email;
$order->address=$address;
$order->save();
return redirect('checkout');
}
else{
return back();
}
}
else{
return redirect('/');
}
}
我不知道写上面的函数是对还是错,但我想插入如下记录
如果不是很好的方法,请建议一个:)
----------------------------------------------------------------------------------------------------
id(auto increment) uid(user's id) pid(product id) qnty(quantity) name email address
----------------------------------------------------------------------------------------------------
1 1 1-2 3-2 xyz test@test.com xyz
我在这里尝试插入 value of pid and qnty 正在使用 implode/explode
老实说,我从未尝试过implode/explode
或
----------------------------------------------------------------------------------------------------
id(auto increment) uid(user's id) pid(product id) qnty(quantity) name email address
----------------------------------------------------------------------------------------------------
1 1 1 3 xyz test@test.com xyz
1 1 2 2 xyz test@test.com xyz
请给出您的建议-答案等:)
【问题讨论】:
标签: php arrays laravel associative-array laravel-6