Laravel 5.6 insert into DB

Va rog sa ma ajutati cu sfaturi pentru laravel.
De cateva zile incerc sa invat laravel si am urmatoarea situatie, incerc sa fac un insert conform manualului:

DB::table('users')->insert(
    ['nume' => 'john', 'email' => '[email protected]']
);

iar tabelul din DB mai contine un camp token, dar la care vreau sa-i fac ulterior update.

In forma de mai sus nu face update-ul. Daca setez in DB la token null, functioneaza sau daca-i dau o valoare si pentru token la insert, ex:

['nume' => 'john', 'email' => '[email protected]', 'token' => 'test']

Dar eu nu vreau sa setez nici null in DB, iar insertul vreau sa contina doar o parte din campuri.

Se poate face ceva?

Presupun ca daca setezi tokenul ca null in tabela users ca default, nu vei mai avea probleme.

Poti seta ‘strict’ => false in config/database.php la driver-ul mysql, dar nu recomand si cea mai buna solutie e sa faci default token = null asa cum zice si Eduard.

Pune ‘token’ => ‘’

Multumesc pentru raspunsuri.

Solutia cea mai simpla pe care am specificat-o in postare e sa bifez null pentru campurile unde nu introduc nimic.

Dar eu vroiam sa stiu de la cineva care cunoste bine laravel daca exista vreun parametru la functia insert care sa ignore aceste campuri.

La codeigniter nu am avut astfel de probleme.

Aici este vorba de cum este creata baza de date, nu de Laravel, sau plain PHP.

Ai codul sursa la dispozitie, de ce nu verifici ce parametri accepta respectiva metoda de insert? Nu mai invatati doar ce scrie-n documentatie, indrazniti sa va uitati si ce face codul din spate.

5 Likes