mình muốn 1 user sẽ có 1 wallet, và sẽ liên kết qua user_id ở wallet. Và 1 wallet sẽ có nhiều expends và được liên kết bằng wallet_id trong expends. Cứ mỗi lần phát sinh 1 giao dịch thì bạn sẽ tạo mới 1 record trong expends và record đó có thể là thu hoặc chi tùy vào type của nó. money_before hay after ,
bạn kiểm tra lại từng câu truy vấn xem có cái nào bị null không, chứ mình test thì tất cả mọi thứ ok hết.
Auth::user()->wallet->expends->last()->money_before
@khanh1234 thật sự là bạn nói diễn tả khó hiểu quá @@ thôi mình cứ nói qua như này nhé. 1 user của bạn sẽ có 1 wallet, và sẽ liên kết qua user_id ở wallet. Và 1 wallet sẽ có nhiều expends và được liên kết bằng wallet_id trong expends. Cứ mỗi lần phát sinh 1 giao dịch thì bạn sẽ tạo mới 1 record trong expends và record đó có thể là thu hoặc chi tùy vào type của nó. money_before hay after cũng vậy, bạn tính toán và lưu lại thôi
@duong.manh.hoang vậy nếu mình lấy được money_before để lưu trong bảng expends, nếu mục chi thì lấy money_before -= value ra được moneyafter,thì sử lý như nào bạn nhỉ,mình muốn lưu được trường type khi mà thu thì tính được số tiền sau giao dịch,chi thì cx thế ,giống lưu status 1 và 0 , 0 là chi và 1 là thu
@khanh1234 à mình hiểu ý bạn rồi. Số tiền trước khi giao dịch nó sẽ tương đương với lần giao dịch gần nhất của bạn đúng không?
$wallet=Auth::user()->wallet;$latest exchange =$wallet->expends->latest()->first();// Cần thiết lập quan hệ expends trong model Wallet
$latest exchange chính là record mới nhất trong bảng expends mà liên quan tới wallet của user. Giờ thì bạn muốn lấy thông tin gì thì chỉ cần gọi đến nó thôi
@duong.manh.hoang Auth::user()->wallet->money ,từ đây mình lấy được tiền của ví, sau sô tiền này sẽ là số tiền trước khi giao dịch(money_before)
lưu trong bảng expend ạ
@khanh1234 hiện tại mỗi user của bạn sẽ chỉ có duy nhất 1 ví thôi đúng không. Nếu có phát sinh giao dịch thì bạn update vào cái money của bảng wallet đó. Lấy ra số tiền thì như bạn nói ở trên đó
@khanh1234 về csdl của bạn thì mình hiểu rồi. Thế giờ cái bạn cần là gì vậy? Mình không hiểu được cái lấy thông tin của ví user đăng nhập bạn muốn nói tới ở đây là gì
lỗi này của bạn là ở trên host của bạn chưa cài redis nhé.
Nếu bạn đang dùng các loại hosting thông thường thì khó có thể bạn được làm nhiều thứ, thường chỉ được upload project lên và chỉ được cấu hình chút ít.
Để cài được redis thì bạn cần VPS, nơi bạn có thể tuỳ biến hoàn toàn, tự chạy các command bạn muốn. Nếu bạn đã có VPS thì check redis bằng command:
THẢO LUẬN
vấn đề mk gặp phải là làm sao để lấy được before =money trong ví để tiến hành giao dịch ,
@duong.manh.hoang vâng ạ,thks bạn,
bạn kiểm tra lại từng câu truy vấn xem có cái nào bị null không, chứ mình test thì tất cả mọi thứ ok hết. Auth::user()->wallet->expends->last()->money_before
@khanh1234 thật sự là bạn nói diễn tả khó hiểu quá @@ thôi mình cứ nói qua như này nhé. 1 user của bạn sẽ có 1 wallet, và sẽ liên kết qua user_id ở wallet. Và 1 wallet sẽ có nhiều expends và được liên kết bằng wallet_id trong expends. Cứ mỗi lần phát sinh 1 giao dịch thì bạn sẽ tạo mới 1 record trong expends và record đó có thể là thu hoặc chi tùy vào type của nó. money_before hay after cũng vậy, bạn tính toán và lưu lại thôi
@duong.manh.hoang vậy nếu mình lấy được money_before để lưu trong bảng expends, nếu mục chi thì lấy money_before -= value ra được moneyafter,thì sử lý như nào bạn nhỉ,mình muốn lưu được trường type khi mà thu thì tính được số tiền sau giao dịch,chi thì cx thế ,giống lưu status 1 và 0 , 0 là chi và 1 là thu
(len) (len) anh ei
@khanh1234 à mình hiểu ý bạn rồi. Số tiền trước khi giao dịch nó sẽ tương đương với lần giao dịch gần nhất của bạn đúng không?
$latest exchangechính là record mới nhất trong bảng expends mà liên quan tới wallet của user. Giờ thì bạn muốn lấy thông tin gì thì chỉ cần gọi đến nó thôibạn chụp mình xem model Wallet và model Expends, chứ mình đã test như thế kia trên máy mình và vẫn ra kết quả nhé
@duong.manh.hoang Auth::user()->wallet->money ,từ đây mình lấy được tiền của ví, sau sô tiền này sẽ là số tiền trước khi giao dịch(money_before) lưu trong bảng expend ạ
@khanh1234 và bạn cần lấy cả số tiền trước khi giao dịch hay gì?
không được bạn ạ,nó báo lỗi Trying to get property 'expends' of non-object
@duong.manh.hoang sô tiền của ví thì mình lấy được rồi,nhưng trước khi giao dịch tiền của ví là moneybefore ,
@khanh1234 hiện tại mỗi user của bạn sẽ chỉ có duy nhất 1 ví thôi đúng không. Nếu có phát sinh giao dịch thì bạn update vào cái
moneycủa bảngwalletđó. Lấy ra số tiền thì như bạn nói ở trên đóĐúng điều bạn đang thắc mắc chưa vậy?
@duong.manh.hoang à,thông tin ví đăng nhập là,lấy được số tiền của ví đó dể thực hiện giao dịch, minh ddang mac cho do
@khanh1234 về csdl của bạn thì mình hiểu rồi. Thế giờ cái bạn cần là gì vậy? Mình không hiểu được cái lấy thông tin của ví user đăng nhập bạn muốn nói tới ở đây là gì
lỗi này của bạn là ở trên host của bạn chưa cài redis nhé.
Nếu bạn đang dùng các loại hosting thông thường thì khó có thể bạn được làm nhiều thứ, thường chỉ được upload project lên và chỉ được cấu hình chút ít.
Để cài được redis thì bạn cần VPS, nơi bạn có thể tuỳ biến hoàn toàn, tự chạy các command bạn muốn. Nếu bạn đã có VPS thì check redis bằng command:
nhé
Chất lượng quá em êi
viết mà ko hiểu đang viết gì ..