Сохранить массив из vuejs в SQL столбец json, но сохранить ноль - PullRequest
0 голосов
/ 18 марта 2020

Я создал форму, которая будет сохранять данные в моем столбце users моей таблицы pack .

Данные моей формы хранятся в моем user переменная. Во время моего запроса ax 1030 я помещаю sh данные из переменной user в мою переменную users , которая является пустым массивом.

Хранилища данных в моей переменной users , которая является массивом.

Затем я сохраняю переменную users в моем столбце users , который находится в моей таблице pack , но возвращаемый результат NULL каждый раз.

<form action="" class="modal__form">
    <div class="modal__bloc-field">
       <div class="modal__form-field">
          <label for="fullname">Nom</label>
          <input type="text" id="fullname" v-model="user.fullname">
        </div>
        <div class="modal__form-field">
           <label for="department">Département</label>
           <input type="text" id="department" v-model="user.department">
        </div>
    </div>
    <div class="c-btn__container c-btn__container--modal">
       <button @click.prevent="postAddUsers()" class="c-btn c-btn--primary">
          <div>
            <span>Ajouter</span>
         </div>
       </button>
     </div>
  </form>
  import axios from 'axios';

    export default {
        data() {
            return {
                pack: '',
                showModal: false,
                users: [],
                user: {
                    fullname: '',
                    department: ''
                }
            }
        },

        mounted() {
            this.getPackView();
        },

        methods: {
            async getPackView() {
                axios.get(`api/listing/${this.day}/${this.slug}`).then(response => {
                    this.pack = response.data.data
                })
            },

            postAddUsers(){
                this.users.push(this.user);
                axios.post(`addUsers/${this.day}/${this.slug}`, this.users);
                this.getPackView();
            }
        },
        props: ['day', 'slug']
    }
public function addUsers(Request $request, $day, $slug)
    {
        $data = Pack::where([
            ['date', '=', $day],
            ['slug', '=', $slug]
        ])->first();

        $data->users = $request->users;
        $data->save();

        return response()->json([
            'status' => $data->name,
            200
        ]);
    }
Route::post('addUsers/{day}/{slug}', 'PageController@addUsers');

1 Ответ

0 голосов
/ 21 марта 2020

Я думаю, лучше вставлять по одному разу. Итак,

public function addUser(Request $request, $day, $slug)
{
    $data = Pack::where([
        ['date', '=', $day],
        ['slug', '=', $slug]
    ])->first();

    $data->users()->create($request['user']);

    return response()->json([
        'status' => $data->name,
        200
    ]);
}

Но если вы хотите вставить все это каждый раз, когда нажимаете кнопку, вы можете сделать это

public function addUsers(Request $request, $day, $slug)
{
    $data = Pack::where([
        ['date', '=', $day],
        ['slug', '=', $slug]
    ])->first();

    $data->users()->createMany($request['user']);

    return response()->json([
        'status' => $data->name,
        200
    ]);
}

Попробуйте посмотреть, что появляется с помощью dd ($ request [' пользователей]) в методе

Подробнее

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...