SQLSTATE [HY000]: общая ошибка: 1364 Поле «имя» не имеет значения по умолчанию, Laravel - PullRequest
0 голосов
/ 04 декабря 2018

Привет, я новичок в создании и использовании API, я использую Laravel для API-компонента и использую HttpClient от angular для выполнения запроса, вот код

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';


@Injectable()
export class ApitestProvider {
  tests;
  apiUrl = "http://127.0.0.1:8000/api";
  testAdded;
  testGotten;
  testDeleted;
  constructor(public http: HttpClient) {

    console.log('Hello ApitestProvider Provider');
  }

  addTest(data) {
    /*let nData= JSON.stringify(data);
    console.log(nData);*/
    let obj = {name : "test"};
    this.http.post(this.apiUrl + "/tests",JSON.stringify(obj))
      .subscribe(res => {
        console.log(res);
        this.testAdded = res;
      }, (err) => {
        console.log(err);
      });
  }

код, который он изменилв целях тестирования, и вот мой код laravel для контроллера

public function store(Request $request){
    return Testme::create($request->all());
}

, а вот код для начальной миграции

class CreateTestmesTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('testmes', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('testmes');
    }
}

, также в модели единственной заполняемой строкой является 'name', заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

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

просто пришлось использовать httpheaders

  addTest(data) {
    let headers = new HttpHeaders();
    headers = headers.set('Content-Type', 'application/json; charset=utf-8');
    let nData = JSON.stringify(data);
    console.log(nData)
    this.http.post(this.apiUrl + "/tests", nData, {headers: headers})
      .subscribe(res => {
        console.log(res);
        this.testAdded = res;
      }, (err) => {
        console.log(err);
      });
  }
0 голосов
/ 04 декабря 2018

ошибка говорит: «Имя поля не имеет значения по умолчанию».Это означает, что вы не отправляете никакого значения для этого поля в своем почтовом запросе.Таким образом, у вас есть три способа:

1 -> заполнить поле имени значением в http-запросе клиента

2 -> перейти к миграции пользователя базы данных в приложении laravel и установить значение по умолчаниюв поле имени, например: $ table-> string ('name') -> default ('');

3 -> перейти в тот же файл с точкой 2 °и установите поле имени обнуляемым следующим образом: $ table-> string ('name') -> nullable ();

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