[英]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.