Laravel

Kiến thức cơ bản về Eloquent ORM

Models, các thao tác CRUD, query builder, mass assignment, timestamps, soft deletes, accessors, mutators

22 câu hỏi phỏng vấn·
Junior
1

Eloquent sử dụng quy ước đặt tên nào theo mặc định để suy ra tên bảng từ tên model?

Câu trả lời

Eloquent sử dụng dạng snake_case số nhiều của tên lớp để suy ra tên bảng. Ví dụ, model User tương ứng với bảng users, và BlogPost tương ứng với blog_posts. Quy ước này có thể được ghi đè bằng cách định nghĩa thuộc tính $table trong model.

2

Phương thức Eloquent nào cho phép tạo VÀ lưu một model mới trong một thao tác duy nhất?

Câu trả lời

Phương thức create() cho phép tạo và lưu một model trong một thao tác duy nhất bằng cách nhận một mảng các thuộc tính. Nó yêu cầu các thuộc tính được liệt kê trong thuộc tính $fillable hoặc $guarded được định nghĩa để bảo vệ khỏi mass assignment. Khác với new Model() rồi save(), create() kết hợp hai bước này.

3

Điều gì xảy ra nếu cố gắng mass assignment một thuộc tính không có trong $fillable?

Câu trả lời

Laravel ném ra một exception MassAssignmentException để bảo vệ khỏi các lỗ hổng mass assignment. Cơ chế bảo vệ này ngăn người dùng độc hại chèn các thuộc tính trái phép thông qua các request HTTP. Bạn phải thêm thuộc tính vào $fillable, dùng $guarded để chỉ bảo vệ một số thuộc tính nhất định, hoặc dùng forceFill() để bỏ qua cơ chế bảo vệ.

4

Sự khác biệt giữa phương thức find() và findOrFail() trong Eloquent là gì?

5

Eloquent xử lý tự động các cột created_at và updated_at như thế nào?

+19 câu hỏi phỏng vấn

Nắm vững Laravel cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí