Hướng dẫn laravel disable mysql strict mode - laravel vô hiệu hóa chế độ nghiêm ngặt mysql
Tôi chỉ muốn tắt chế độ nghiêm ngặt MySQL cho một truy vấn bên trong bộ điều khiển không phải cho toàn bộ ứng dụng Laravel, Show Tôi biết rủi ro của việc vô hiệu hóa chế độ nghiêm ngặt MySQL nên tôi không muốn vô hiệu hóa nó cho toàn bộ ứng dụng của mình từ config/cơ sở dữ liệu.php, Tôi đang phải đối mặt với vấn đề chỉ với một truy vấn trong toàn bộ ứng dụng của mình, vì vậy tôi muốn vô hiệu hóa nó bên trong bộ điều khiển của mình trước khi chạy truy vấn đó chỉ trong một lần! Xin hãy giúp tôi có cách nào cho tình huống đã cho. hỏi ngày 26 tháng 7 năm 2018 lúc 8:25Jul 26, 2018 at 8:25
Mȍhǟmmǟd șamȋmmȍhmǟMǟd șamȋmMȍhǟmmǟd Șamȋm Phim huy hiệu vàng 2311 Huy hiệu bạc13 Huy hiệu đồng1 gold badge4 silver badges13 bronze badges 5 Thay đổi chế độ nghiêm ngặt trong thời gian chạy
Đã trả lời ngày 15 tháng 11 năm 2018 lúc 10:16Nov 15, 2018 at 10:16
Max Gauravmax GauravMax Gaurav 1.7652 huy hiệu vàng12 Huy hiệu bạc26 Huy hiệu đồng2 gold badges12 silver badges26 bronze badges 2 Sử dụng cái này cho MySQL ≤5.7 (lấy từ đây):
Đã trả lời ngày 26 tháng 7 năm 2018 lúc 15:14Jul 26, 2018 at 15:14
Jonas Staudenmeirjonas StaudenmeirJonas Staudenmeir 23.7K5 Huy hiệu vàng57 Huy hiệu bạc102 Huy hiệu Đồng5 gold badges57 silver badges102 bronze badges 6 Một điều mà bạn có thể làm là thay đổi giá trị này trong thời gian chạy
Đã trả lời ngày 26 tháng 7 năm 2018 lúc 15:37Jul 26, 2018 at 15:37
jarguez01jarguez01jarguez01 Huy hiệu đồng 1941 Bạc7 Huy hiệu đồng1 silver badge7 bronze badges 2 Trong config/database.php, làm như: 'Kết nối' => [
] Đã trả lời ngày 26 tháng 7 năm 2018 lúc 9:31Jul 26, 2018 at 9:31
1 MySQL đã có một chế độ nghiêm ngặt kể từ 5.1, nhưng trong 5.7, nó đã trở thành mặc định. Nếu bạn đã tạo ra một máy chủ gần đây và đột nhiên các ứng dụng của bạn đã bị hỏng, đây có thể là nguồn. Trong Laravel, bạn có thể sửa lỗi này trong mã: Chỉnh sửa tệp
Tệp cấu hình của bạnMySQL thực sự trông năm địa điểm khác nhau cho các tệp cấu hình, vì vậy bạn có thể thực hiện thay đổi tôi sắp đề xuất một số nơi. Nó sẽ nhìn vào ____9, 0, 1, 2 và 3. 4 là dành riêng cho người dùng và các tùy chọn thứ ba và thứ tư dựa vào các chi tiết cụ thể từ môi trường của bạn. Vì vậy, hãy gắn bó với một trong hai cái đầu tiên.Trên hộp Laravel Forge mặc định, cấu hình MySQL mặc định sẽ tồn tại trong 0, vì vậy hãy đặt các thay đổi của chúng tôi ở đó. SSH vào máy chủ của bạn và sử dụng VIM hoặc PICO để chỉnh sửa tệp đó.Dòng của bạnNếu bạn cuộn xuống tệp một chút, bạn sẽ tìm thấy phần 6. Chúng tôi sẽ thêm một khóa mới, 7. Trên MySQL 5.7, các giá trị mặc định cho khóa này ra khỏi hộp là:
Chế độ nghiêm ngặt đến từ 8. Vì vậy, hãy ghi đè lên 7 và đặt nó giống như mặc định, nhưng không có chế độ nghiêm ngặt.
Đó là nó! Lưu tệp và khởi động lại MySQL. Từ dòng lệnh sẽ là 0 hoặc từ giao diện Laravel Forge, mở máy chủ, nhấp vào biểu tượng dịch vụ khởi động lại ở phía dưới và chọn khởi động lại MySQL.
Share: Bình luận? Tôi là @stauffermatt trên Twitter Chế độ nghiêm ngặt có được kích hoạt không?Kích hoạt và vô hiệu hóa chế độ nghiêm ngặt trong Laravel 5.2 với tính năng mới này, giờ đây Laravel có khả năng thực hiện ba điều: vô hiệu hóa chế độ "nghiêm ngặt", trở lạienable "strict" mode, setting it to the 5.7 behavior; or customizing exactly which modes are enabled.
Điều gì là nghiêm ngặt ở Laravel?· Theo dõi.Hãy tuyệt vời những điều mới trong bản phát hành Laravel tuần này.Đầu tiên, bây giờ bạn có thể nhanh chóng kích hoạt "Chế độ nghiêm ngặt": Không có ngoại lệ tải lười biếng khi gán các thuộc tính không có thể lấp đầy các ngoại lệ truy cập các thuộc tính không được truy xuất hoặc không tồn tại.No lazy loading Exceptions when assigning non-fillable attributes Exceptions accessing attributes that weren't retrieved or don't exist.
Làm thế nào tôi có thể biết nếu MySQL nghiêm ngặt?Đầu tiên, hãy kiểm tra xem chế độ nghiêm ngặt có được bật hay không trong MySQL bằng cách sử dụng:.. Hiển thị các biến như 'SQL_Mode' ;. Đặt sql_mode = '';. Đặt sql_mode = 'strict_trans_tables' ;. |