Laravel

Podstawy Eloquent ORM

Models, operacje CRUD, query builder, mass assignment, timestamps, soft deletes, accessors, mutators

22 pytań z rozmów·
Junior
1

Jakiej konwencji nazewnictwa Eloquent używa domyślnie do wywnioskowania nazwy tabeli z nazwy modelu?

Odpowiedź

Eloquent używa liczby mnogiej w snake_case nazwy klasy do wywnioskowania nazwy tabeli. Na przykład model User odpowiada tabeli users, a BlogPost odpowiada blog_posts. Tę konwencję można nadpisać, definiując właściwość $table w modelu.

2

Która metoda Eloquent pozwala utworzyć ORAZ zapisać nowy model w jednej operacji?

Odpowiedź

Metoda create() pozwala utworzyć i zapisać model w jednej operacji, przyjmując tablicę atrybutów. Wymaga, aby atrybuty były wymienione we właściwości $fillable lub aby zdefiniowano $guarded w celu ochrony przed mass assignment. W przeciwieństwie do new Model() z następującym save(), create() łączy te dwa kroki.

3

Co się stanie, jeśli spróbujemy wykonać mass assignment atrybutu, który nie znajduje się w $fillable?

Odpowiedź

Laravel rzuca wyjątek MassAssignmentException, aby chronić przed podatnościami mass assignment. Ta ochrona uniemożliwia złośliwym użytkownikom wstrzykiwanie nieautoryzowanych atrybutów za pośrednictwem żądań HTTP. Musisz dodać atrybut do $fillable, użyć $guarded, aby chronić tylko niektóre atrybuty, lub użyć forceFill(), aby ominąć ochronę.

4

Jaka jest różnica między metodami find() i findOrFail() w Eloquent?

5

Jak Eloquent automatycznie obsługuje kolumny created_at i updated_at?

+19 pytań z rozmów

Opanuj Laravel na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo