Laravel 5.6 insert into DB

laravel

(Marius) #1

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' => 'john@example.com']
);

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' => 'john@example.com', '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?


(Eduard-Dan Stanescu) #2

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


(Alin Ghitu) #3

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.


(Andrei Neamțu) #4

Pune ‘token’ => ‘’


(Marius) #5

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.


(Eduard-Dan Stanescu) #6

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


(George Jipa) #7

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.