SQLSTATE [HY000]: общая ошибка: 1364 Поле 'id_personalia' не имеет значения по умолчанию - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь назначить множество данных в одной форме, но это дает мне эту ошибку, хотя в id_personalia.

есть данные: Вот сообщение об ошибке:

SQLSTATE[HY000]: General error: 1364 Field 'id_personalia' doesn't have a default value (SQL: insert into `tbl_personalia_perusahaan` (`id_profil_penyedia`, `nm_personal`, `tgl_personal`, `pendidikan_personal`, `jbtn_personal`, `pengalaman_personal`, `keahlian_personal`, `sertif_personal`, `path_personal`) values (9, Bambang, 24 ns, sd, sekretaris, 3, ada, ada, archive_gambar/138/pendaftaran_perusahaan/138-personal-1.pdf))

и это значение enter image description here

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

$nop = 1;

foreach ($request->nm_personal as $person=>$p) {
    $nmpersonal = $sesi . '-personal-' . $nop . '.' . $request->img_personal[$person]->getClientOriginalExtension();

    $path_personal = 'archive_gambar/' . $sesi . '/pendaftaran_perusahaan/' . $nmpersonal;

    $request->img_personal[$person]->move($tujuan_upload, $nmpersonal);

    $data7 = array(
        'id_profil_penyedia'  => $id_perus,
        'nm_personal'         => $request->nm_personal[$person],
        'tgl_personal'        => $request->tgl_personal[$person],
        'pendidikan_personal' => $request->pendidikan_personal[$person],
        'jbtn_personal'       => $request->jbtn_personal[$person],
        'pengalaman_personal' => $request->pengalaman_personal[$person],
        'keahlian_personal'   => $request->keahlian_personal[$person],
        'sertif_personal'     => $request->sertif_personal[$person],
        'path_personal'       => $path_personal
    );

    $nop++;

    ModelPersonalia::insert($data7);                
}

Ответы [ 2 ]

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

Скорее всего, это связано с тем, что id_personalia отсутствует в массиве $fillable в модели, соответствующей таблице.

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

Используйте одно из этих решений в зависимости от логики вашего приложения c ...

Решение 1:

В вашей базе данных сделайте id_personalia обнуляемым или присвойте ей значение по умолчанию

Решение 2:

В вашей миграции сделайте id_personalia обнуляемым или присвойте ему значение по умолчанию: $table->integer('id_personalia')->nullable()->default(0);

Решение 3:

В вашем назначении контроллера значение id_personalia.

$data7 = array(
    'id_profil_penyedia'=>$id_perus,
    'nm_personal'=>$request->nm_personal[$person],
    'tgl_personal'=>$request->tgl_personal[$person],
    'pendidikan_personal'=>$request->pendidikan_personal[$person],
    'jbtn_personal'=>$request->jbtn_personal[$person],
    'pengalaman_personal'=>$request->pengalaman_personal[$person],
    'keahlian_personal'=>$request->keahlian_personal[$person],
    'sertif_personal'=>$request->sertif_personal[$person],
    'path_personal'=>$path_personal,
    // here
    'id_personalia'=>$request->id_personalia,
);

$nop++;

ModelPersonalia::insert($data7); 

Не забудьте добавить свойство ModelPersonalia для заполнения или сделать все охраняемым protected $guarded = [];

Надеюсь, это поможет вы

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