Laravel создать массив в почтальоне и сохранить в базе данных - PullRequest
1 голос
/ 19 марта 2019

У меня проблемы в этой ситуации.Это то, что я показываю в Почтальоне enter image description here

Контроллер

 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.Как я могу справиться с этой ситуацией?

Это то, что я получаю в базе данных enter image description here

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Это из-за того, как названы ваши ключи.time [0] .time недействителен и, возможно, он читает его только на time [0].Вот почему вы получаете только часы.

time [0] .time = 'morning';
time [0] .hour = '10: 00 ';

- тогда он не будет считать .time или.час, потому что это недействительно.тогда это только сделало бы время [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!']);

    }

}
1 голос
/ 19 марта 2019

Проблема

Я не знаю, как работает ваш код, потому что это for ( $times as $time) не так, как for.

Вот объяснениеfor https://secure.php.net/manual/pt_BR/control-structures.for.php

Решение

as на for заставляет меня думать, что вы пытаетесь использовать 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...