Аксиос | VueJS | Laravel | Сообщение не может получить доступ к объекту - PullRequest
0 голосов
/ 30 октября 2018

Итак, я пытаюсь отправить свои данные на мой контроллер, а затем получить к ним доступ через объект. Он определенно передает данные, но по какой-то причине не позволяет мне получить доступ к любому элементу в этом объекте, это действительно странно.

Вот мой запрос на публикацию в компоненте vue.

        axios.post('/users', {user: this.user})
        .then(response => {
            console.log(response)
        })
        .catch(error => {
            console.log(error.response)
        });

Вот что у меня есть в контроллере, и, как я уже сказал, я получаю информацию о пользователе, но я не могу получить к ней доступ, например, делая $ user-> id, но когда я просто использую $ user, я могу видеть пользовательские данные, включая ID.

    //Here we get all the users info from the Axios Vue.
    $user = $request->get('user');

    return response()->json([
        'status' => 'success',
        'msg'    => $user->id,
    ], 201);

Ошибка, которую я получаю, это ошибка php, поскольку я могу найти ее в области ответа сети, и именно об этом говорится в сообщении об ошибке.

"message": "Trying to get property 'id' of non-object"

Но когда я просто делаю это в контроллере.

    //Here we get all the users info from the Axios Vue.
    $user = $request->get('user');

    return response()->json([
        'status' => 'success',
        'msg'    => $user,
    ], 201);

Возвращает 201 и показывает это в сообщении.

{"id":1,"email":"test@test.com","full_name":"John Doe","first_name":"John","last_name":"Doe","is_active":1,"overide_login":1,"skill_id":5,"phone":null,"shifts_id":0,"bilingual":0,"full_time":0}

Я неправильно форматирую объект или что-то в этом роде? ... Было бы здорово, если бы кто-то мог помочь, потому что я действительно не понимаю, почему это не работает.

ТАКЖЕ ВНИМАНИЕ ВСЕ НА НОВЫХ ВЫПУСКАХ VUEJS / AXIOS И LARAVEL.

1 Ответ

0 голосов
/ 30 октября 2018

Вы должны сначала декодировать его, пожалуйста, добавьте это в свой контроллер.

$input = ($request->all() == null ? json_decode($request->getContent(), true) : $request->all());

echo $input['user']['id']

Надеюсь, это работает для вас.

...