THẢO LUẬN

Jul 16th, 2018 5:59 a.m.

oke e 😄

0

Chuyển qua xài Ant Design sẽ thấy tuyệt vời hơn.

+1
Jul 16th, 2018 4:30 a.m.

Mình thấy đây là một bài viết tệ, rất sơ sài và nội dung chỉ là dịch từ wiki, những bài viết như này mình nghĩ sẽ làm loãng những topic chất lượng hơn, thiết nghĩ khi đã viết post bạn nên đầu tư công sức hơn. Cảm ơn bạn

0
Jul 16th, 2018 4:15 a.m.

Anh hay quá mong được học hỏi anh nhiều hơn ❤️

+1
Jul 16th, 2018 4:13 a.m.
  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 a.m.

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

0
Avatar
đã bình luận cho bài viết
Jul 16th, 2018 3:19 a.m.

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

0
Jul 16th, 2018 3:16 a.m.

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 a.m.

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 a.m.

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 a.m.
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 a.m.

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 a.m.

tks a

0
Jul 16th, 2018 2:49 a.m.

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:33 a.m.
$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 a.m.

Cảm ơn anh,

0
Jul 16th, 2018 1:52 a.m.

Hay!!!

0
Jul 16th, 2018 1:45 a.m.

😄

0
Jul 16th, 2018 1:42 a.m.

woa

0
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí