truy vấn trong laravel
DB::table('courses')
->join('course_user', 'courses.id', '=', 'course_user.course_id')
->join('users', 'course_user.user_id', '=', 'users.id')
->select('courses.*')
->where('courses.title', '=', 'từ khoá bạn cần tìm')
->where('courses.status', '=', 'status')
->paginate();
bạn tham khảo thử query này nhé. Cái này thì bạn cứ join bảng rồi query như bình thường thôi
giúp mik vs mai mik thi r
Bạn thiếu dấu :
cuối câu lệnh if nhé.
if t%3 == 0 and t%5 == 0:
Hỏi về mẫu design database website tương tự Viblo
Nếu là mình thì mình sẽ thiết kế database gồm các bảng đơn giản như sau: uses
, questions
, answers
, tags
, comments
Bảng questions
gồm các trường: title
, content
, point
(down vote, up vote), view
, user_id
. Quan hệ từ bảng questions
với bảng khác: n - 1 users
, 1 - n answers
, 1 - n tags
, 1 - n comments
Bảng answers
gồm: content
, is_accepted
, user_id
, question_id
, point
(down vote, up vote). Quan hệ từ bảng answers
: n - 1 users
, 1 - n comments
. Về phần point
thì bạn cũng có thể tách ra thành bảng riêng để dùng polymorphic vì câu hỏi và câu trả lời đều có trường này.
Bảng comments
: cái này có thể làm polymorphic còn nếu chỉ có câu trả lời thì chỉ đơn giản là: content
, answer_id
hoặc content
, commentable_id
, commentable_type
(thể hiện là comment của câu trả lời hoặc của câu hỏi)
Bảng tags
: 'name'
Bạn có thể tự vẽ ra digram để nhìn cho trực quan nhé
Bỏ giá trị tiêu đề trùng lặp trong page or post với foreach
Trong vòng lặp foreach
bạn cần kiểm tra xem danh sách posts
được render ra widget có post mà đang đang hiển thị cho người dùng không, nếu có thì không tiến hành render ra post
đó mà chỉ render những post
có id
khác với post
hiện tại đang hiển thị.
@foreach ($posts as $widgetPost)
@if ($widgetPost->id !== $post->id)
// render widget post ở đây
@endif
@endforeach
Bắt sự kiên đã có của class khi thêm 1 thẻ div mới bằng jquery
Khi bạn append một phần tử html nào vào thì trước khi append bạn hay gắn cho phần tử đó sự kiện onClick rồi mới append nó vào. Khi bạn để code như trên thì html được render ra lúc đó do chưa có phần tử nào có class là ex
nên khi bạn gọi $(".ex")
nó sẽ k tìm thấy phần tử nào mà gắn sự kiện onclick cả. Bạn có thể làm tương tự bên dưới code của mình.
<div id="h">Click</div>
<div id="container"></div>
<script>
let div = document.getElementById('h');
div.addEventListener("click", function() {
var newDiv = document.createElement("div");
newDiv.innerHTML = 'Hello World';
newDiv.addEventListener('click', function() {
console.log('Hello Console');
})
document.getElementById('container').appendChild(newDiv);
})
</script>
Gate:before và policy trong laravel
Khi bạn gọi:
if($userNow->can('view', $userNow))
thì lúc này Gate::before
sẽ được trigger trước nên kết quả trả về của câu lệnh if đó luôn luôn là false nếu bạn không phải là admin
. Bạn bỏ thằng Gate::before
và sửa lại hàm view
trong Policy như sau:
public function view(UserModel $user , UserModel $userModel)
{
return $user->superAdmin() || $user->id === $userModel->id;
}
Hỏi về js
Do Object là kiểu tham chiếu(Reference Types) nên khi bạn gán cho thằng 'postNo' thì nó đã thay đổi object gốc của bạn. Bạn phải tiến hành clone lại object đó trước rồi thực hiện thay đổi trên object clone đó. Bạn có thể sửa như này:
ar.push(Object.assign({}, this.listPost[i], {
postNo: '',
}))
hoặc đơn giản hơn là
ar.push({
id: this.listPost[i].id,
postNo: '',
title: this.listPost[i].title,
})
Cách sử dụng moment.js để hiển thị thời gian?
bác dùng thử như bên dưới xem được không?
moment(this.jobinfos.created_at).fromNow(true);
// or
moment(this.jobinfos.created_at).fromNow();
Hỏi về cách sử dụng router lồng trong VuJs để truyền params từ trang này qua trang khác
Theo em hiểu thì ý bác là muốn khi đang ở trang chủ người dùng để ngôn ngữ là tiếng anh 'en' thì khi chuyển trang khác bác vẫn muốn để tiếng anh đúng không nhỉ? Nếu bác muốn làm thế thì bác có thể tạo một biến vào localStorage để lưu ngôn ngữ hiện tại ví dụ như: currenLanguage: 'en'. Rồi những trang khác bác hòan toàn có thể lấy từ localStorage ra ngôn ngữ hiện tại của người dùng.
VueJS, Làm cách nào để khi nhấp vào Dropdown thì nó đổi trạng thái hiển thị?
Em thì thấy có 2 cách như này:
- Bác để src của cái ngôn ngữ hiện tại là một biến. Rồi gán sự click vào 2 thẻ ngôn ngữ vi và en sau đó update lại cái biến src của ngôn ngữ đang hiển thị
- Bác bắt ngôn ngữ hiện tại trên URL tạo ra 1 cái computed để tính toán lại cái src của ngôn ngữ hiện tại là được
Code Vue vẫn chạy bình thường tại sao console lại đỏ ạ? :V
Chào bác lại là em đây =))). Thay vì bác để activeLocale = null
sao bác k để luôn là activeLocale = 'vi'
nhỉ. Bác thử xem có còn lỗi không ? Hoặc bác thử để phần logic đó vào created()
thay vì mounted()
xem sao nhưng em vẫn recommend cách mình set luôn activeLocale = 'vi'
SUPPORT JIRA
Để phần Issues được ghim ở menu thì khi bạn tạo một project mới bằng bất kỳ template nào nhưng ở phần type bạn chọn type là Company-managed software nhé. Còn phần Board thì bạn có thể chỉnh tùy ý.
Cho em hỏi ngu về Laravel Blade ạ
Cấu trúc thư mục của bạn như thế nào nhỉ, bạn kiểm tra lại xem đã extend đúng chưa và import đầy đủ css hay js vào master chưa. Bạn thử vào route student rồi F12 lên xem file css hay js được import chưa.
Kiểm Tra Thông Tin Đã Tồn Tại Chưa
Không biết back-end bạn đang dùng ngôn ngữ gì nhung bạn có thể tạo ra 1 cái validate để khi người dùng gửi thông tin username và mật khẩu lên thì gọi hàm validate đó để kiểm tra xem username đã tồn tại hay chưa. Mình thấy bạn đang lưu mật khẩu là raw text thì không nên lưu như vậy, trước khi lưu vào file thì bạn nên mã hóa cho nó. Còn về cách validate thì bạn có thể đọc file ra một mảng các user rồi tìm kiểm trong mảng đó xem có user nào có username được gửi lên không nếu có thì bạn gửi 1 message về là username đã tồn tại chẳng hạn
Làm Table Có Cột Không Bằng Nhau
Bạn có thể tham khảo ở đây nhé, còn về độ rộng của các cột bạn có thể thêm css cho nó.
Hỏi về Schedule Task trong Laravel?
Theo mình biết thì bạn nên đặt lịch trong Task Scheduling cho dễ quản lý vì nếu server của bạn chạy nhiều project mà tất cả các job trong crontab thì khi muốn sửa một job của một project nào đó ta sẽ phải vào crontab để tìm. Nếu crontab có nhiều job từ nhiều project thì điều này sẽ gây khó khăn trong việc quản lý. Thay vì thế ta sẽ đặt lịch trong Task Scheduling của từng project để dễ dàng quản lý hơn.