Nhưng sau một hồi đọc rồi hiểu các kiểu về JOIN, thì mới nhận ra rằng nó chính là những truy vấn dữ liệu mà mình vẫn hay làm thường ngày, nhưng chỉ có điều là nó làm ngắn gọn và tăng tốc độ truy vấn lên thôi.
Lúc đọc đến đoạn này mình nghĩ bạn đang muốn nói đến điều này chứ nhỉ ?.
SELECT*FROM adress JOIN client ON adress.client_id = client.id
# tương đương vớiSELECT*FROM adress, client WHERE adress.client_id = client.id
Không rõ vô tình hay hữu ý nhưng bài viết của bạn đã không có đầy đủ các ảnh minh họa như bài viết gốc => dẫn đến bài dịch của bạn bị giảm giá trị khoảng 10 lần so với bài viết gốc và người đọc nhanh chóng bỏ đi sau khi cuộn xuống đến hết bài viết của bạn. Bạn nên khắc phục lại xem sao.
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
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 đó.
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
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
THẢO LUẬN
Auth::user()->load('roles'); đây có phải từ model user() trỏ tới roles() phải k a
Bài viết hay quá, hy vọng bạn tiếp tục serie để mình học thêm
Thực sự quá hay
Anh xem giúp em thông số đã được chưa ạ
config database
.env
Lúc đọc đến đoạn này mình nghĩ bạn đang muốn nói đến điều này chứ nhỉ ?.
mai đức trung best logic
Cảm ơn bạn, mình quên mất khi bỏ sót những hình bên dưới
Không rõ vô tình hay hữu ý nhưng bài viết của bạn đã không có đầy đủ các ảnh minh họa như bài viết gốc => dẫn đến bài dịch của bạn bị giảm giá trị khoảng 10 lần so với bài viết gốc và người đọc nhanh chóng bỏ đi sau khi cuộn xuống đến hết bài viết của bạn. Bạn nên khắc phục lại xem sao.
Mục đích của bài viết là hướng tới việc validate form bạn nhé...
oke e
Chuyển qua xài Ant Design sẽ thấy tuyệt vời hơn.
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
Anh hay quá mong được học hỏi anh nhiều hơn
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 đó.name
trong đó, chỉ cần nó match với 1 kết quả trong mảngroles
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ứcnull !== $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ề falsead ơi markdown này giống markdown của githup không. nó có hỗ trợ highlight syntax và emoji không.
Styled-component hiện tại đang là mạnh nhất!.
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é.
Cho e hỏi 2 câu cuối cùng với a:
$employee->roles()->attach($role_employee);
cho e hỏi hàmroles()
từ đâu mà gọi thế a ???return null !== $this->roles()->whereIn('name', $roles)->first();
a giải thích giúp e vụ in với tks a nhiềuhà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ệnreturn mà thêm || abort... là sao a... mới vào nghề đọc k hiểu a ơi :v