Tìm ra những học sinh có điểm giống nhau trong laravel
Mình tạm đặt tên bảng dữ liệu bạn cung cấp trong câu hỏi là students
.
Bạn tham khảo câu truy vấn sau nhé:
SELECT *
FROM students
WHERE (toan * 100 + ly * 10 + hoa) in (
SELECT (toan * 100 + ly * 10 + hoa) as groupScore
FROM students as s
GROUP BY groupScore
HAVING COUNT(id) > 1
ORDER BY groupScore DESC
)
ORDER BY (toan * 100 + ly * 10 + hoa) DESC;
Kết quả:
Link demo: http://sqlfiddle.com/#!9/9b237e/19
-- Update ---
Cách mình truy vấn:
- Tìm ra nhóm các bạn có điểm 2 môn giống hệt nhau bằng công thức:
Toán * 100 + Lý * 10 + Hóa
, gọi làgroupScore
, đồng thời lọc luôn các nhóm thực sự có số học sinh từ 2 bạn. Nhóm 1 HS thì tức là bạn ý không có ai giống điểm. VD: Toán 7, Lý 6, Hóa 0 => Group 760; Toán 10, Lý 9, Hóa 5 => 1095 - Truy vấn lấy ra danh sách học sinh thuộc các nhóm có điểm bị trùng ở câu truy vấn số 1. MÌnh sort lại theo groupScore của học sinh để các bạn cùng nhóm điểm giống nhau thì sẽ xếp liền nhau cho tiện quan sát.
Docker - Full ổ cứng vì /data/mysql/binlog.*
Bác thử tham khảo bài viết này xem: https://www.programmersought.com/article/98561321267/ Mình thấy có một số cách được chia sẻ:
- Xóa thủ công bằng cách lệnh SQL:
-- Nếu không phải là máy master
reset master;
-- Nếu là máy master, kiểm tra xem binlog hiện tại là đang dùng tới file thứ tự nào:
show master status;
-- Xóa các cũ, trừ file thứ tự hiện tại:
PURGE BINARY LOGS TO 'mysql-bin.010';
-- Xóa các file cũ theo ngày:
PURGE BINARY LOGS BEFORE '2019-04-02 22:46:26';
Về 2 cách này thì điểm khác nhau đó là cái RESET nó sẽ xóa logs và đặt lại số thứ tự ở đuối của file logs về lại từ đầu là 1.
- RESET MASTER: https://dev.mysql.com/doc/refman/5.7/en/reset-master.html
- PURGE BINARY LOGS: https://dev.mysql.com/doc/refman/5.7/en/purge-binary-logs.html
- Xóa tự động
-- Kiểm thời gian tối đa mà file binlog được lưu trữ:
show variables like ‘expire_logs_days’;
-- Giảm thời gian xuống VD từ 7 ngày xuống còn 3 ngày:
set global expire_logs_days = 3;
Làm thế nào để chuyển đổi từ array sang object trong php
Bạn làm vòng for để tạo mảng mới, với các item được gán lại index là id của item.
array_walk($array, function ($item, $value) use (&$newArray) {
$newArray["$item['id']"] = $value;
});
hỏi về Flex html css
Bạn thử thêm thuộc tính này cho cái flex container xem:
justify-content: flex-start;
Xin nhờ giải thích đoạn code
Cái getFile
nó sẽ download nội dung file qua đường link được truyền vào từ biến url
. Sau đó return lại instance File
trong JavaScript - chứa nội dung file đã download về.
Vì việc download file fetch
trong JS nó sẽ là bất đồng bộ - tức dòng lệnh trên chưa chạy xong nhưng dòng dưới đã chạy xong rồi. Thế nên trong code có bổ sung await
phía trước lời gọi hàm để dòng lệnh fetch
nó trở nên như là đồng bộ - tức dòng lệnh sau sẽ được thực thi sau khi lệnh trước đó thực thi xong.
Hỏi về npm
Theo như ảnh trong câu hỏi thì có phải là lỗi gì đâu bạn.Kia là warning - tức là cảnh báo về các lỗ hổng bảo mật (vulnerabilities) - trong các gói package/dependencices bạn đang cài.
Còn về các lỗ hổng thì như bạn đang làm đấy, chạy lệnh npm audit
để xem có những package nào có báo cáo lỗ hổng. Thường thì những lỗ hổng sau khi được báo cáo thì sẽ có sớm các bản vá (patch). Do đó bạn chỉ cần upgrade version của package đó là xong.
Ví dụ như trong ảnh audit bạn comment, thì mình thấy còn 2 report liên quan tới postcss
và dns-packet
. Bạn thử upgrade phiên bản postcss thử xem có hết lỗi không? Lúc upgrade bạn nhớ lưu ý version xem có BREAKING CHANGE ko nhé.
Hỏi về Config Account trong Git ?
Bạn dùng cấu hình "remote" theo loại SSH cho git project thì sẽ không phải đăng nhập bằng username và password nữa nhé.
# HTTP
https://github.com/kimyvgy/simple-scrollspy.git
# SSH
git@github.com:kimyvgy/simple-scrollspy.git
Để dùng SSH thì bạn làm các bước sau:
- Tạo SSH Keys - làm theo hướng dẫn https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent?utm_source=Blog
- Copy nội dung SSH Public Key
*.pub
và thêm nó vào trong cấu hình SSH trong trên Github / Bitbucket - Copy link git remote theo dạng SSH, trên Github sẽ như sau:
- Thêm remote dùng SSH keys cho repo dưới local, ví dụ mình thêm remote
upstream
git remote add upstream git@github.com:kimyvgy/simple-scrollspy.git
# Test thử, pull qua SSH remote sẽ không cần nhập username / password tài khoản Github / Bitbucket:
git pull upstream master:master
Hỏi về lỗi form request validation của laravel :(
Mình xem trong source code MimeTypes.php - Line 140 thì thấy như này:
if (!$this->isGuesserSupported()) {
throw new LogicException('Unable to guess the MIME type as no guessers are available (have you enabled the php_fileinfo extension?).');
}
Lỗi này là do môi trường PHP của bạn chưa bật extension php_fileinfo
. Bạn thử thêm config php.ini
như sau để khắc phục xem sao nhé:
extension=php_fileinfo.dll
Hoặc xóa dấu ;
đi để bỏ comment nếu đã có khai báo sẵn.
em mới tìm hiểu về node js mong mn giúp em ạ
Mình chưa hiểu lắm ý bạn về việc "block request từ domain". Hình như bạn bị lỗi CORS khi test thì phải đúng không? Khi bạn tạo request lấy dữ liệu từ Node.js server thì sẽ không bị lỗi CORS này đâu. Bạn vẫn dùng axios để kéo dữ liệu như thường. Nếu bạn test dưới local thì có thể cài thêm extension để cho Bypass CORS trên browser.
sư khác nhau khi lấy hình ảnh từ folder src/assets và puplic/image trong Reactjs
- Thường thì đối với web người ta hay đặt để riêng một
public
hoặc một số framework để tênstatic
chẳng hạn. Thư mục này mang ý nghĩa làpublic
tức là người dùng sẽ hoàn toàn truy cập được và xem được nội dung của file. Thường các framework sẽ config sẵn để host các file static trong thư mục này luôn.
VD: /public/images/logo.svg
Khi đó, chúng ta truy cập https://localhost/images/logo.svg là có thể xem được ảnh logo luôn.
- Còn với thư mục
src
thì khác, tất cả những nội dung trong thư mục này sẽ là source code của dự án, hoặc là những file mà chúng ta không muốn cho end-user xem được trực tiếp. Nếu không thì là bị lộ source code rồi còn gì. Chẳng hạn như: source code, file scss..
Tuy nhiên, ngoài lý do source code phải private, thì còn một điểm nữa đó là, những file này, mình thí dụ là file JS, SCSS...thì phải được compile ra thành JS/CSS thuần thì trình duyệt mới hiểu, nên những file này không cần thiết để ai cũng truy cập được.
=> Như bạn thấy, trên đây là lý do chính mà người ta phân ra một thư mục public
và src
riêng nhé.
public
để ai cũng xem đượcsrc
chứa source, hoặc các file JS/SCSS cần build ra JS/CSS thuần- Các file JS/CSS thuần sau khi được build thì sẽ quẳng qua thư mục public, để end-user truy cập được
- Còn về việc lấy hình ảnh từ src và public, thường thì sẽ có các cách này:
- Một số file ảnh nếu bạn import trong source code, thì các công cụ như webpack sẽ có các plugin để mã hóa lại tên file, nếu bạn muốn người dùng chỉ xem được theo tên đã được hash. Và thường ảnh gốc sẽ để trong
src/assets
và output ra thư mụcpublic
. Cùng một tên file, nếu nội dung file thay đổi thì file name được hash ra sẽ có tên khác, khi đó nó sẽ không bị cache bởi trình duyệt. - Một số file ảnh nếu bạn không cần hash tên file, thì bạn quẳng luôn vào folder
public
để truy cập trực tiếp luôn giống như ở mục 1.
Crate Table khi Select Table không tồn tại
@thangly98 Thường thì với web mình hay sửa dụng thêm các lib về ORM (Object Relational Mapping) chứ không tự thiết kế lại cái bánh xe, thường các lib này sẽ có các thành phần liên quan như:
- Migration: Các file dùng để tạo table, thêm cột, sửa cột... vào trong DBMS
- Seeder: Các file dùng để khởi tạo các dữ liệu mẫu cho dự án
- Model: Các file dùng để định nghĩa các đối tượng tương ứng với các thực thể trong mô hình dữ liệu quan hệ
Khi deploy thì lúc start ứng dụng, ứng dụng sẽ chạy các file migration để khởi tạo / cập nhật các thay đổi liên quan tới cấu trúc các bảng trong Database. Nếu file migration được chạy trước đó rồi thì nó sẽ có cơ chế bỏ qua.
Sau đó khi migrate DB thành công thì ứng dụng sẽ thực sự chạy hẳn. Pass healthcheck và traffic mới bắt đẩu đổ vào ứng dụng sau khi deploy.
[Laravel] Hỏi về cách dùng file .env cho môi trường develop và production
Khi deploy thì trên server bạn cứ đặt file là .env thôi vì trên server thì thường mỗi môi trường bạn sẽ deploy ra các folder khác nhau chứ chẳng chung một folder đâu nhỉ?
Với các biến môi trường không nhạy cảm như APP_URL... chỉ cần sử dụng để build bundle cho frontend thì bạn có thể thêm nó vào ngay trong cấu hình CI/CD của bạn mà không cần thiết phải để đặt env variable trên server. Ví dụ như với Gitlab:
deploy-staging:
environment:
APP_URL: https://your-staging.domain
deploy-production:
environment:
APP_URL: https://your-prod.domain
Chia sẻ Facebook không hiện hình ảnh
Bác thử bỏ cái thẻ og:image:secure_url
mà chỉ giữ lại thẻ og:image
xem có hết lỗi không vậy?
[Laravel] Xin cách gọi dữ liệu từ model
Bạn thử sửa lại câu truy vấn dùng with('role.assignment')
xem.
$users = User::query()
->with('role.assignment')
->get();
Nhưng mà trong dự án bạn nên thêm phân trang bằng hàm ->paginate(20)
nữa nha. Chứ dùng get()
nó sẽ lôi hết toàn bộ record trong bảng users
ra mất.
Thắc mắc về SSR trong Nextjs
Bạn tìm hiểu về redux nhé. Tạm hiểu Redux sẽ giúp chúng ta giữ data mà page tải về vào một thành phần được gọi là state và nó cung cấp các feature giúp chia sẻ state
tới các component con: reducer
, action
... Các component con sẽ được render lại khi mà data state thay đổi. Như vậy, bạn có thể fetch data tại page, và các component con chỉ việc lấy data từ trong state ra sử dụng.
[Laravel, Reactjs] Xin cách up web lên host
Bạn không nói rõ nhưng mình cũng đoán là bạn dùng react + laravel theo kiểu SPA. Không giống như web dùng nodejs, với kiểu SPA (client side rendering) thì bạn chỉ cần upload những file bundle (output files) lên server/hosting mà thôi. Chứ không phải upload thư mục node_modules
lên nữa.
Nếu website của bạn chạy trên nền node.js theo hướng server side rendering bằng node.js thì lúc đó mới cần node_modules trên server. Tuy nhiên, bạn cũng không cần upload node_modules mà chỉ cần lên server chạy npm install
thì node_modules sẽ sinh ra.
API của Viblo?
Bạn dùng https://api.viblo.asia thử xem có bị lỗi nữa không? :-? Vì đây là domain public của Viblo mà.
E có câu hỏi về Docker, mong nhận đc sự tư vấn của mọi người ạ.
Dùng thử tí docker cho vui bác ạ. Dùng rồi là mê ngay ấy mà Theo mình thì nên dùng bởi một số lợi ích khi dùng docker: các phiên bản ở các môi trường sẽ đều giống nhau, dễ dàng scale, khi setup development cũng dùng luôn docker khá tiện...
Multiple Laravel theme
@Devsuccess Như bạn Khang nói là mình thấy ổn đó, bạn có thể chia sẻ cụ thể hơn về bài toán của bạn được ko? Vì cái theme mà mọi người đang hiểu là kiểu như đổi tone màu của website, font chữ, cỡ chữ... ý là đổi style thôi chứ bố cục vẫn giữ nguyên.
Nếu bài toán của bạn cấp độ cao hơn đó là đổi cả layout hiển thị các kiểu thì mình bạn có thể tách hẳn mỗi theme
của bạn thành từng folder với gồm các file blade riêng rẽ. Hoặc kết hợp cả hai gồm cách thay theme theo CSS và cả render view blade riêng.
Lưu data trong localStorage
Nếu khi inspect bạn không xóa thì nó vẫn còn, trừ khi trong code của bạn có logic xóa luôn. Mình nghĩ là code của bạn đó, bạn có thể làm cái screencast lên đây thao tác của bạn được ko?