[英]Laravel create an array in postman and save in database
调节器
public function index(Request $request)
{
$user = Auth::guard('api');
if ($user)
{
$parameters=new UserParameters();
$parameters->id_user=Auth::guard('api')->id();
$parameters->day=$request->day;
if($parameters->save())
{
$times=$request->time;
foreach ( $times as $time)
{
$new_time = new TimeParameter();
$new_time->id_parameter = $parameters->id;
$new_time->time = $time[0];
$new_time->hour = $time[1];
$new_time->save();
}
return response()->json(['true' => false, 'message' => 'Saved!']);
}
}
else
{
return response()->json(['error' => false, 'message' => 'User not found!']);
}
}
我陷入了循环。 我该如何处理这种情况?
问题
我不知道你的代码是如何工作的,因为这for ( $times as $time)
并不怎么样for
作品。
这是for
https://secure.php.net/manual/pt_BR/control-structures.for.php的解释
解
for
上的as
使我认为您尝试使用foreach
。 这是它的工作方式:
foreach( $times as $time)
$time
已经是array
一条记录
因此,当您执行foreach
时,它应该是这样:
foreach ( $times as $time){
$new_time = new TimeParameter();
$new_time->id_parameter = $parameters->id;
$new_time->time = $time->time;
$new_time->hour = $time->hour;
$new_time->save();
}
这是因为密钥的命名方式。 time [0] .time无效,并且可能仅将其读取为time [0]。 这就是为什么您只得到时间。
time [0] .time ='早上';
time [0] .hour = '10:00';
-然后它将不计算.time或.hour,因为那是无效的。 那么只会使它成为时间[0],这便说明了为什么只有时间。
随着我要求您对邮递员数据进行的更改。 您可以尝试此解决方案。
public function index(Request $request)
{
$user = Auth::guard('api');
if ($user)
{
$parameters=new UserParameters();
$parameters->id_user=Auth::guard('api')->id();
$parameters->day=$request->day;
if($parameters->save())
{
$data= $request->all();
foreach ( $data['times'] as $time)
{
$new_time = new TimeParameter();
$new_time->id_parameter = $parameters->id;
$new_time->time = $time[0];
$new_time->hour = $time[1];
$new_time->save();
}
return response()->json(['true' => false, 'message' => 'Saved!']);
}
}
else
{
return response()->json(['error' => false, 'message' => 'User not found!']);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.