Ошибка: запрос не выполнен с кодом состояния 500 Laravel/Vue

Это полное сообщение об ошибке в консоли:

POST http://127.0.0.1:8000/formSubmit 500 (Internal Server Error)
dispatchXhrRequest @ app.js:279
xhrAdapter @ app.js:118
dispatchRequest @ app.js:726
Promise.then (async)
request @ app.js:528
Axios.<computed> @ app.js:553
wrap @ app.js:1071
formSubmit @ app.js:1896
invokeWithErrorHandling @ app.js:25465
invoker @ app.js:25790
original._wrapper @ app.js:31143

Я пытаюсь получить данные из формы VueJs и вставить их в базу данных MySql через контроллер laravel.

Мой метод отправки VueJs:

        methods: {
            formSubmit(e) {
                e.preventDefault();
                let currentObj = this;
                axios.post('/formSubmit', {
                    first: this.first,
                    last: this.last,
                    phone: this.phone,
                })
                .then(function (response) {
                    currentObj.output = response.data;
                })
                .catch(function (error) {
                    currentObj.output = error;
                });
            }

Мой контроллер:

class StudentsController extends Controller
{
    public function formSubmit(Request $request)
    {
        $validatedData = $request->validate([
            'first' => 'required|string',
            'last' => 'required|string',
            'phone' => 'required',
        ]);

        $s = new Student();
        $s->first = $validatedData->first;
        $s->last = $validatedData->last;
        $s->phone = $validatedData->phone;
        $s->save();

        return response()->json($validatedData);
    }
}

Это всего лишь демонстрационный проект, поэтому, если есть другие способы отправки без получения этой ошибки, они тоже будут работать.

Спасибо


person moepart    schedule 30.09.2019    source источник
comment
Откройте инструменты разработчика браузера и найдите ошибку в предварительном просмотре вкладки сети.   -  person Salim Djerbouh    schedule 30.09.2019
comment
В нем говорится: «Попытка получить свойство «сначала» не-объекта».   -  person moepart    schedule 30.09.2019
comment
Похоже, что поле «first» моей базы данных на самом деле называлось «first_name», поэтому я пытался назначить $validatedData-›first; к тому, чего не существует. Большое спасибо Caddy DZ, что действительно помогли   -  person moepart    schedule 30.09.2019


Ответы (1)


Ошибка сервера 500 означает, что проблема заключается в вашем контроллере laravel. Поэтому проверьте каждое имя поля таблицы. проверьте, есть ли имя столбца first в вашей таблице. если он существует, проверьте, что вы получаете от своего внешнего интерфейса? проверьте, получаете ли вы достоверные данные, поэтому в начале контроллера проверьте их.

return $request->first

если тоже правильно то попробуй сохранить данные прямо из запроса

$this->validate($request,[
            'first' => 'required|string',
            'last' => 'required|string',
            'phone' => 'required',
        ]);

        $s = new Student();
        $s->first = $request->first;
        $s->last = $request->last;
        $s->phone = $request->phone;
        $s->save();

        return response()->json(['result'=>$s]);
person Gias    schedule 30.09.2019