Tôi muốn biết liệu người dùng có vai trò 'VIEW_GEOLOC_DATA' hay không, nhưng tôi gặp sự cố khi sử dụng chức năng twig is_granted()
.Twig/Symfony2: vai trò bội số với is_granted
Nếu tôi sử dụng trong một khuôn mẫu:
Roles : {{ dump(app.user.getRoles()) }}
is_granted('ROLE_SUPER_ADMIN') : {{ dump(is_granted('ROLE_SUPER_ADMIN')) }}
is_granted('VIEW_GEOLOC_DATA') : {{ dump(is_granted('VIEW_GEOLOC_DATA')) }}
Đây là những gì tôi nhận được khi vẽ:
array(2) {
[0]=>
string(16) "ROLE_SUPER_ADMIN"
[1]=>
string(16) "VIEW_GEOLOC_DATA"
}
is_granted('ROLE_SUPER_ADMIN') : bool(true)
is_granted('VIEW_GEOLOC_DATA') : bool(false)
Tôi đã cố gắng để đăng nhập vào và ra, đổ bộ nhớ cache của symfony.
Tôi cũng đã cố gắng chuyển thứ tự của vai trò trong mảng được trả về bởi phương thức getRoles() của Người dùng của tôi: hàm is_granted sẽ chỉ tính đến vai trò đầu tiên của mảng
như là một vấn đề rõ ràng có thể trực tiếp trả về kết quả của in_array, thay vì thêm một if/else: 'return in_array ($ role, $ this-> getRoles());' –
Nó không phải là cùng một tài khoản is_granted cho kế thừa ROLE , trong khi chỉ kiểm tra xem người dùng có vai trò được chỉ định không – Gamesh