@dezeross Vậy là php-fpm của bạn chạy bằng unix socket à
Nếu hiện giờ nó đang gặp lỗi Permission denied thì có thể là do process nginx và php-fpm đang chạy dưới 2 user khác nhau :-s Bạn thử check xem sao
# ps aux | grep php-fpm
# ps aux | grep nginx
bạn vào trong config của php-fpm tại file www.conf (trong trường hợp của bạn thì có thể nó nằm trong /etc/php/7.0/fpm/pool.d/), sửa lại phần listen.owner với listen.group sao cho giống với của nginx là được
Vấn đề của mình mình đã giải quyết bằng cách: khi người dùng vào giỏ hàng thì lấy từng id của sản phẩm ra sau đó query vào DB lấy thông tin sản phẩm mới nhất rồi update vào giỏ hàng. Với cách đó mình giải quyết luôn được vấn đề Người quản trị xóa sản phẩm trong DB thì sản phẩm trong giỏ hàng cũng bị xóa luôn.
Đúng rồi, bạn nên query vào DB để lấy dữ liệu, như vậy có thể khắc phục được vấn đề dữ liệu được Admin update
Sẵn cho mình hỏi luôn là làm sao để làm được cái này " Hay ý bạn là user đang mở trang giỏ hàng, và admin thay đổi giá thì giá đó cần được update ngay ở phía trình duyệt của user (mà không cần user phải reload lại trình duyệt)? " @@
Để làm được chức năng real-time như vậy thì bạn cần sử dụng một công nghệ gọi là web socket, trong Laravel có sẵn một công cụ hỗ trợ bạn sử dụng web socket là Laravel Echo đấy
Trên Viblo cũng có khá nhiều bài viết về Laravel Echo, bạn có thể tham khảo thêm, ví dụ:
Nhìn chung tư tưởng của nó là phía client và server luôn có kết nối với nhau, khi có sự thay đổi ở phía server (ở đây là giá sản phẩm), bạn gửi thông báo về sự thay đổi, kèm theo nội dung thay đổi đó cho client (phía server chủ động gửi, chứ không phải client chủ động request lên). Client, ở đây là browser, nhận thông báo về sự thay đổi, và thực hiện hành động tương ứng với sự thay đổi đó (update giá, update tổng tiền ...)
@thangtd90 mình lưu id, name, price, quantity vào luôn. Để Shopping Cart nó lấy được tổng giá trong giỏ hàng (total). Nên là mình không có query id để lấy thông tin sản phẩm.
Vấn đề của mình mình đã giải quyết bằng cách: khi người dùng vào giỏ hàng thì lấy từng id của sản phẩm ra sau đó query vào DB lấy thông tin sản phẩm mới nhất rồi update vào giỏ hàng. Với cách đó mình giải quyết luôn được vấn đề Người quản trị xóa sản phẩm trong DB thì sản phẩm trong giỏ hàng cũng bị xóa luôn. Đây là code:
Sẵn cho mình hỏi luôn là làm sao để làm được cái này " Hay ý bạn là user đang mở trang giỏ hàng, và admin thay đổi giá thì giá đó cần được update ngay ở phía trình duyệt của user (mà không cần user phải reload lại trình duyệt)? " @@
THẢO LUẬN
N chạy rồi em cảm a
@dezeross Có thể config
nginxcủa bạn bị lỗi rồi, bạn thử config mà bạn @huukimit gửi ở phần trả lời phía trên xem sao, nhất là ở đoạnfastcgi_paramThiếu dấu
$, nên sửa lại thành:e sửa r mà n lại File not found // error.log: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream,
Sao không post PR lên ? Các file ảnh và hiệu ứng quay tròn không có !
@dezeross Vậy là
php-fpmcủa bạn chạy bằng unix socket àNếu hiện giờ nó đang gặp lỗi Permission denied thì có thể là do process
nginxvàphp-fpmđang chạy dưới 2 user khác nhau :-s Bạn thử check xem saobạn vào trong config của php-fpm tại file
www.conf(trong trường hợp của bạn thì có thể nó nằm trong/etc/php/7.0/fpm/pool.d/), sửa lại phầnlisten.ownervớilisten.groupsao cho giống với củanginxlà đượcChẳng hạn
Bài viết khá dễ hiểu . Cảm ơn bạn
Error.log : 2018/05/10 00:36:08 [crit] 15921#15921: *1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /info.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "localhost
Bác có thể khai báo một route đặc biệt như sau, route này nhớ đặt ở cuối cùng của file route:
Controller để xử lý hiển thị trang danh mục:
Khai báo routeKeyName trong model
Categoryreturn field chứa slug:@vietsmiler Cái này bác đặt một câu hỏi bên chuyên mục Questions trên Viblo có lẽ sẽ nhận được mọi người giúp đỡ nhanh hơn
Chào bạn, Cho mình hỏi mình muốn viết lại url cho link này: http://huehien.developworld.com.vn/cat/dien-thoai-may-tinh -> http://huehien.developworld.com.vn/dien-thoai-may-tinh trong Laravel thì làm sao nhỉ, hiện tại mình đang dùng tiền tố prefix=>'cat' để điều hướng dah mục sản phẩm.
Mong nhận được sự giúp đỡ của bạn
Cái này tương thích ngược tới android api bao nhiêu vậy ạ?
Great post (y)
bài viết hay quá.
@thangtd90 Ok mình cảm ơn b nhiều
.
cam on ban da chia se
@truongphuc1999
Để làm được chức năng real-time như vậy thì bạn cần sử dụng một công nghệ gọi là web socket, trong Laravel có sẵn một công cụ hỗ trợ bạn sử dụng web socket là Laravel Echo đấy
Trên Viblo cũng có khá nhiều bài viết về Laravel Echo, bạn có thể tham khảo thêm, ví dụ:
Nhìn chung tư tưởng của nó là phía client và server luôn có kết nối với nhau, khi có sự thay đổi ở phía server (ở đây là giá sản phẩm), bạn gửi thông báo về sự thay đổi, kèm theo nội dung thay đổi đó cho client (phía server chủ động gửi, chứ không phải client chủ động request lên). Client, ở đây là browser, nhận thông báo về sự thay đổi, và thực hiện hành động tương ứng với sự thay đổi đó (update giá, update tổng tiền ...)
Tuyệt vời. Rất hữu ích. Pro viết thêm hướng dẫn trên Window nữa thì đẹp quá =))
@thangtd90 mình lưu id, name, price, quantity vào luôn. Để Shopping Cart nó lấy được tổng giá trong giỏ hàng (total). Nên là mình không có query id để lấy thông tin sản phẩm.
Theo mình cái shoping cart này bạn tự viết cho dễ control chứ không phải dùng package ngoài làm gì.