繁体   English   中英

Laravel在邮递员中创建一个数组并保存在数据库中

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM