2 đoạn này nếu chuyển về rxjava2 sẽ code như thế nào anh. Bình thường em hay dùng CompositeDisposable rồi add Maybe hoặc Completable vào thôi. Chưa hiểu được lắm ạ.
Như bạn nói, mã hóa "abc" kia thành MD5 -> 900150983cd24fb0d6963f7d28e17f72
Vậy cái chuỗi MD5 này sẽ thay thế chuỗi "abc" trong DB, khi người dùng click link trên, mình sẽ mã hóa MD5 cho GET token trên URL đó, rồi đem so sánh md5 get và md5 DB, đúng thì cho đổi, phải như vậy ko bạn?
=> nếu string có chứa ' thì sao? Có thể bị sql injection ko?
$sql = preg_replace('/\?/', $value, $sql, 1);
=> nếu có đã có dấu ? trước đó trong câu sql (vd: select * from abc where a like 'how?%' and b like ?) thì kết quả sẽ sai?
Dấu ? ở đây được sử dụng cho prepared statement chứ không replace thủ công như thế.
Về solution đơn giản nhất ở đây là bạn bê cả đoạn của alias distance vào whereRaw() do sql không support where <alias column>. Lưu ý là nên prefix column trong raw sql với table name để tránh trùng column khi join.
Nếu dùng cách của bạn, bạn có thể dùng các hàm addBinging, mergeBindings... của query builder thay vì replace string thủ công.
!! (phủ định đôi) chuyển đổi kiểu dữ liệu sang boolean. Nó sẽ tự động chuyển đổi mọi kiểu dữ liệu về boolean và biến này sẽ trả về false khi nó có những giá trị như: 0, null, "", undefined hoặc NaN, ngược lại nó sẽ trả về true.
THẢO LUẬN
(love) (goodjob) hay quá đồng chí ơi
Mong bạn tiếp tục ra nhiều bài viết về angular js v1 nhé.
Cảm ơn anh
Lodash chứ sao lại Loadash
thanks bro
chưa đc dễ hiểu lắm ông ạ.
Giọng văn vừa vui vừa dễ hiểu
I think you can watch this video https://www.youtube.com/watch?v=SJDEOWLHYVo&feature=youtu.be
Mình nghĩ bạn đang lấy ví dụ cho Factory Method Pattern, chứ không phải Abstract Factory pattern.
2 đoạn này nếu chuyển về rxjava2 sẽ code như thế nào anh. Bình thường em hay dùng CompositeDisposable rồi add Maybe hoặc Completable vào thôi. Chưa hiểu được lắm ạ.
Mình cũng làm theo cách của bạn là tạo token (một chuỗi random) lưu vào trường "user_token" và gửi link dạng abc.com/reset/{user_id}/{user_token}.
Giả sử string token đó là "abc" id là 7, link reset là abc.com/reset/7/abc
Như bạn nói, mã hóa "abc" kia thành MD5 -> 900150983cd24fb0d6963f7d28e17f72
Vậy cái chuỗi MD5 này sẽ thay thế chuỗi "abc" trong DB, khi người dùng click link trên, mình sẽ mã hóa MD5 cho GET token trên URL đó, rồi đem so sánh md5 get và md5 DB, đúng thì cho đổi, phải như vậy ko bạn?
bạn ơi có phần 2-2 ở đâu nhỉ nếu được có thể gửi source code cho mình được không?langtusitinh8888@gmail.com Mình cảm ơn!
Sao từ đầu bạn lại dùng
having
nhỉ,having
chỉ dùng vớigroup by
, chỉ có MySQL support dạnghaving <alias>
.Theo mình vấn đề ở đây là, khi phân trang, Laravel chạy thêm 1 câu query để lấy số lượng:
=> Lỗi phát sinh ở đây.
Về solution của bạn, theo mình hiểu là bạn dùng 2 câu
select
lồng nhau:Được chuyển thành:
Mình thấy ko tốt lắm, thứ nhất performance có thể bị ảnh hưởng vì 2 câu query lồng nhau, thứ hai là hàm
getSql()
binding bằng tay thực sự không tốt:=> nếu string có chứa
'
thì sao? Có thể bị sql injection ko?=> nếu có đã có dấu
?
trước đó trong câu sql (vd:select * from abc where a like 'how?%' and b like ?
) thì kết quả sẽ sai?Dấu
?
ở đây được sử dụng cho prepared statement chứ không replace thủ công như thế.Về solution đơn giản nhất ở đây là bạn bê cả đoạn của alias distance vào
whereRaw()
do sql không supportwhere <alias column>
. Lưu ý là nên prefix column trong raw sql với table name để tránh trùng column khi join.Nếu dùng cách của bạn, bạn có thể dùng các hàm
addBinging, mergeBindings
... của query builder thay vì replace string thủ công.Cám ơn bạn.
Mình đang gặp vấn đề như mục 1. nếu không dùng MobX. thì có cách nào giải quyết được vấn đề này k? Cảm ơn
hay quá
Cám ơn bạn HIếu đã cung cấp bài viết rất hữu ích!
Cảm ơn bạn, mong bạn sẽ tiếp tục theo dõi các bài viết của mình ^^
quá nhiều chữ đỏ đọc chói mắt quá (sad4)
!!
(phủ định đôi) chuyển đổi kiểu dữ liệu sang boolean. Nó sẽ tự động chuyển đổi mọi kiểu dữ liệu về boolean và biến này sẽ trả về false khi nó có những giá trị như: 0, null, "", undefined hoặc NaN, ngược lại nó sẽ trả về true.