Laravel - вставка двух выбранных значений в базу данных - PullRequest
0 голосов
/ 03 декабря 2018

Я хочу вставить целевое входное значение в базу данных, но оно выдает ошибку, см. Здесь.в чем проблема?

SQLSTATE [23000]: Нарушение ограничения целостности: 1048 «Назначение» столбца не может быть пустым (SQL: вставить в aircraft_flights (flight_number, iata_flight_number, flight_date, departure_time, arrival_time, from_location, destination, aircraft_id) значения (FK2457, SQ1, 2018-03-02T04: 03, 2018-04-04T04: 25, 2018-05-06T16: 02, Филиппины,,4))

вот моя форма Ввод пункта назначения

 <div class="col-md-4 col-sm-4 ">
    {{Form::label('from_location', 'From')}} 
    {{Form::select('from_location', trans('countries'),null,['class' => 'form-control', 'placeholder' => 'Select where you From'])}}<br>
</div>
<br>

<div class="col-md-4 col-sm-4 ">
    {{Form::label('destination', 'Destination Country')}} 
    {{Form::select('destination', trans('countries'),null,['class' => 'form-control', 'placeholder' => 'Select where is your Destination'])}}<br>
</div>
<br>

мой Миграция

 $table->increments('id');
        $table->string('flight_number');
        $table->string('iata_flight_number');
        $table->dateTime('flight_date');
        $table->dateTime('departure_time');
        $table->dateTime('arrival_time');
        $table->string('from_location');
        $table->string('destination');
        $table->integer('aircraft_id');

my Контроллер

 $aircraftFlight = new AircraftFlights;
    $aircraftFlight->flight_number = $request->input('flight_number');
    $aircraftFlight->iata_flight_number = $request->input('iata_flight_number');
    $aircraftFlight->flight_date     = $request->input('flight_date');
    $aircraftFlight->departure_time = $request->input('departure_time');
    $aircraftFlight->arrival_time = $request->input('arrival_time');
    $aircraftFlight->from_location = $request->input('from_location');
    $aircraftFlight->destination     = $request->input('destination ');
    $aircraftFlight->aircraft_id = $request->input('aircraft_id');

    $aircraftFlight->save();

    return redirect('/admin/aircraftflights')->with('success', 'Flight Created');

my Модель

protected $table = 'aircraft_flights';
// Primary Key
public $primaryKey = 'id';
// Timestamps
public $timestamps = false;

Ответы [ 3 ]

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

Вам нужно изменить значение по умолчанию для формы с NULL на пустую строку

{{Form::select('destination', trans('countries'),'',['class' => 'form-control', 'placeholder' => 'Select where is your Destination'])}}<br>

или

вам нужно изменить $table->string('destination')->nullable(); (разрешить нулевые значения) и снова запустите миграцию.

Та же проблема будет для $aircraftFlight->from_location и при отправке нулевых значений

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

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

 $table->string('destination')->nullable();

и $aircraftFlight->destination = $request->input('destination'); удалить пробел

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

вам не хватает destination ввода из того, что я прочитал.from_location равно Philippines в вашем примере, а destination равно NULL, тогда aircraft_id равно 4.

Когда вы добавляете это к вашему Model, это должно решить проблему (тогда можно пропустить NULL)

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