Gọi hàm thành viên setActive () trên boolean


10

Tôi đã gặp vấn đề sau đây khi tôi đang cố gắng cài đặt một mô-đun. Khi tôi cố gắng truy cập bảng quản trị trên magento của mình, tôi nhận được:

Gọi tới hàm thành viên setActive () trên boolean trong C: \ xampp \ htdocs \ project \ eller \ magento \ module-backend \ Model \ View \ result \ Page.php trên dòng 27

Tôi đã vô hiệu hóa tất cả các mô-đun của bên thứ ba và tùy chỉnh, tôi đã biên dịch mã nhưng tôi vẫn gặp lỗi này.

EDIT: Tôi đã thực hiện var_dump($itemId)ngay bên dưới dòng có lỗi và $itemidlà ' Magento_Backend::dashboard'.

EDIT 2: Lỗi là do dòng " $this->layout->getBlock('menu');" ở trên trả về false. Tôi không thể tìm thấy tại sao điều này xảy ra


Câu trả lời:


14

Tôi sẽ cố gắng giải quyết vấn đề này nếu lỗi setActive () () xuất hiện sau setup:di:compileđó sau khi phiên bị hủy

vì vậy hãy vào thư mục Magento và sau đó xóa tệp genre ted bằng di: compile is path: -

magento\generated\metadata\global.php xóa tập tin này sau khi giới thiệu trang của bạn

Đây là giải pháp tạm thời cho lỗi này trong máy chủ cục bộ.


Tôi đã gỡ bỏ nó và vẫn không làm việc.
Bhavin Shah

Nó thực sự hiệu quả với tôi, tuy nhiên, có an toàn để xóa tệp này không?
Greg

có, an toàn để xóa miễn là bạn thực hiện cài đặt: nâng cấp sau đó
John

Điều này làm việc cho tôi. Cảm ơn.
Riddhish Bhayani

Cái này cũng có tác dụng với tôi.
Học viên Magento

6

Tôi đã có tình huống tương tự trong việc phát triển các mô-đun riêng (Tôi đã tạo / thay đổi các tệp bố cục cho lưới trong adminhtml). Cố gắng xóa bộ nhớ cache chuyển sang chế độ phát triển:

$ ./bin/magento cache:clean
$ ./bin/magento deploy:mode:set developer

Tôi cho rằng một số nội dung được lưu trong bộ nhớ cache không được làm sạch trên cache:clean& setup:di:compiletrong chế độ sản xuất. Bạn có thể chuyển về chế độ sản xuất trở lại nếu lỗi sẽ chuyển sang chế độ phát triển.


Tôi nghĩ rằng tôi đã làm điều tương tự! Đó là một vấn đề tập tin bố trí. Cảm ơn!
Sotiris Oik

1
Thiết lập php bin / magento: di: compile - thực hiện lệnh này và giải quyết vấn đề của tôi
Pandurang

2

Cố gắng loại bỏ pub/staticvar/cachesau đó chạy các lệnh dưới đây

php bin/magento setup:upgrade

php bin/magento setup:static-content:deploy

Sau đó nó sẽ hoạt động


1
@Priyank Tôi cũng ở trong hoàn cảnh tương tự, tôi google nó và tìm câu hỏi đó trên google, một khi tôi đã giải quyết được vấn đề, tôi đã dạy nó tốt hơn để chia sẻ giải pháp. Có thể bạn chỉ không thích vì bạn cần một số huy hiệu hoặc thứ gì đó khác.
Noni

0

Khi bạn thực hiện, getBlock()nó trả về khối hoặc nó trả về false nếu không thể tìm thấy nó. Bạn cần phải có một kiểm tra tại chỗ một cái gì đó như:

$block = $layout->getBlock('name);
If ($block){
//execute the rest
}

Lý do tại sao nó không thể tìm thấy khối của bạn là thứ tôi cần thêm chi tiết. Nếu bạn đang sử dụng tệp xml bố cục, hãy chắc chắn rằng khối và lớp của khối không có bất kỳ lỗi nào.


0

Vấn đề là bố trí xml của đường dẫn bộ điều khiển này không tải đúng cách.

Kiểm tra xem tên và không gian tên của bộ điều khiển có khớp với tên tệp bố cục không. Hãy quan tâm đến trường hợp nhạy cảm.

Ví dụ:

  • custom_module_admin_customcontroller_action.xml
  • namespace Custom\Module\Controller\Adminhtml\Customcontroller và không CustomController
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.