Awesome Academy

DISCUSSIONS

Jul 16th, 2018 4:13 AM
  1. e đọc ở trong bài của a ở Model User, có hàm roles, ở đó a thiết lập quan hệ 1-nhiều, tức 1 user có thể có nhiều roles. Sử dụng employee−>roles() a lấy được danh sách roles của 1 user. Sau đó a dùng hàm attach(hàm này laravel hỗ trợ) để thêm quyền cho user đó.
  2. this->roles() trả về danh sách quyền của 1 user giả sử là array1. Sau đó dùng whereIn để duyệt toàn bộ array1, so sánh trường name trong đó, chỉ cần nó match với 1 kết quả trong mảng roles truyền vào là được, tức là chỉ cần match đc 1 kết quả thì biểu thức $this->roles()->whereIn('name', $roles)->first() sẽ khác null, suy ra biểu thức null !== $this->roles()->whereIn('name', $roles)->first() sẽ trả về true. Còn nếu ko match với cái nào thì trả về false
0
Jul 16th, 2018 3:56 AM

ad ơi markdown này giống markdown của githup không. nó có hỗ trợ highlight syntax và emoji không.

0
Jul 16th, 2018 3:19 AM

Styled-component hiện tại đang là mạnh nhất!.

0
Jul 16th, 2018 3:16 AM

Từ phiên bản 16.3 trở đi thì vẫn hỗ trợ lifecycle này, và từ 16.3 đã có lifecycle mới và từ từ 17 trở đi thì lifecyle này không còn đúng nữa.

lifeCycle sẽ như sau:

Mounting: constructor => getDiviredStateFromProps => render => componentDidMount Update: getDiviredStateFromProps => shouldComponentUpdate => render => getSnapshotBeforeUpdate => componentDidUpdate. Unmounting: componentWillMount.

MÌnh khuyên các bạn đang đọc bài nãy hãy quay lại trang reactjs.org để đọc lại document nhé.

+1
Jul 16th, 2018 3:06 AM

Cho e hỏi 2 câu cuối cùng với a:

  1. $employee->roles()->attach($role_employee); cho e hỏi hàm roles() từ đâu mà gọi thế a ???
  2. return null !== $this->roles()->whereIn('name', $roles)->first(); a giải thích giúp e vụ in với tks a nhiều ❤️
0
Jul 16th, 2018 3:03 AM

hàm hasAnyRole nhần vào 1 mảng danh sách các quyền để check nếu 1 user có 1 trong các quyền đó. Đoạn đó a dùng toán tử "||" (hoặc), Nếu có 1 trong các quyền thì trả về true thì toàn bộ biểu thức this−>hasAnyRole(roles) || abort(401, 'This action is unauthorized.'); trả về true, còn nếu không có thì trả về mã lỗi 401 với thông báo "'This action is unauthorized", e đọc thêm phần dưới khi có lỗi 401 mình fallback về 1 trang HTMl cho thân thiện 😃

0
Jul 16th, 2018 2:58 AM
return $this->hasAnyRole($roles) || 
             abort(401, 'This action is unauthorized.');

return mà thêm || abort... là sao a... mới vào nghề đọc k hiểu a ơi :v

0
Jul 16th, 2018 2:54 AM

Chào bạn mình cũng làm như bạn tuy nhiên nhập vào url/graphiql lại không tìm thấy trang, có phải define url trong route k nhỉ.

0
Jul 16th, 2018 2:52 AM

tks a

0
Jul 16th, 2018 2:49 AM

3 dòng này là để tìm kiếm 3 quyền ở trong bảng role. A mặc định là quyền có tên ko bị trùng lặp nên lấy luôn kết quả đầu tiên tìm được bằng first(). Tại sao lại lấy 3 quyền này ra thì để gán những quyền này cho các đối tượng User được tạo ở phía bên dưới bằng hàm attach()

0
Jul 16th, 2018 2:49 AM

kết quả ảnh ví dụ quá 😄

0
Jul 16th, 2018 2:33 AM
$role_employee = Role::where('name', 'employee')->first();
$role_manager  = Role::where('name', 'admin')->first();
$role_saler = Role::where('name', 'saler')->first();

Cho e hỏi 3 dòng này có mục đích gì trong hàm run() ạ..Tks a

0
Jul 16th, 2018 1:53 AM

Cảm ơn anh,

0
Jul 16th, 2018 1:52 AM

Hay!!!

0
Jul 16th, 2018 1:45 AM

😄

0
Jul 16th, 2018 1:42 AM

woa

0
Jul 16th, 2018 12:56 AM

Hiểu như vậy cũng đúng bạn ạ, thêm một ví dụ là tương tự file ghost của các bác cài win hay dùng.

0
Jul 16th, 2018 12:51 AM

Cảm ơn nhận xét của bạn nhé, Pháp vô địch rồi =)))) Nhưng mà một lời khuyên là bạn cũng nên gắng đọc tài liệu Tiếng Anh nhé, ngại thì ngại thật nhưng rất cần thiết.

0
Jul 15th, 2018 5:26 PM
<HTML><script>alert("ahihi")</script>
0
Jul 15th, 2018 2:40 PM

Để giải quyết bài toán này, mình có phải sử dụng 1 mô hình deep learning với mục đích xác định chữ cái (Bạn có thể xem kỹ về các lớp mình có ghi code). Tuy nhiên do bài viết hơi dài, và do mình cũng không muốn đi lan man quá nhiều nên phần DL mình chỉ ghi code mô hình mà không giải thích quá cụ thể. Cảm ơn bạn đã quan tâm 😄

+1