-Bài trước mình đã giới thiệu với mọi người cách tạo Model cũng như cách cấu hình Model, nhưng chưa được ứng dụng vào thực tế ,Thì bài này mình sẽ hướng dẫn mọi người truy vấn cơ sở dữ liệu trong Model với Eloquent ORM của Laravel.
1,Cách gọi Model.
-Để gọi Model trong Controllers thì bắt buộc chúng ta phải gọi namespace của model đó trong Controllers.
- VD: mình muốn gọi Model
news
tronghomecontroller
.
<?php
namespace App\Http\Controllers;
use App\News;
class homecontroller extends Controller
{
News::all();
}
Hoặc
<?php
namespace App\Http\Controllers;
use App;
class homecontroller extends Controller
{
App\News::all();
}
-Còn nếu muốn gọi model trong Route thì các bạn không cần gọi namespace mà các bạn có thể dùng luôn với cú pháp.
App\TenModel::someThing;
VD: mình muốn gọi Model news
trong route.
App\News::all();
2, Các câu truy vấn hay dùng trong Eloquent ORM.
-Chú ý: Tất cả các cú pháp dưới đây mình lấy News
model
Làm mẫu nhé
Lấy ra dữ liệu trong bảng.
-Lấy ra tất cả dữ liệu trong bảng.
News::all();
-Lấy ra một dòng dữ liệu thông qua khóa chính.
News::find(1);
Hoặc
News::take(1)->get();
-Truy vấn điều kiện.
+Bằng:
News::where('id', 5)->get();
+Lớn hơn, nhỏ hơn,.. (giống Query Buider)
-Chọn cột dữ liệu.
News::select('id', 'title')->get();
-Đếm dữ liệu.
News::all()->count();
Thêm dữ liệu.
$news = new News();
$news->title = "tin tức 1";
$news->categoryId = 1;
$news->save();
-Ở trên mình đã thêm vào cột title nội dung là 'tin tức 1' và cột categoryId là 1.
Sửa dữ liệu.
-Ví Dụ mình muốn sửa tiêu đề của bảng news
có id =1.
$news = News::find(1);
$news->title = 'toidicode.com';
$news->save();
Hoặc
News::where('id', 1)->update(['title' => 'toidicode.com']);
Xóa
-Cách 1:
$news= News::find(1);
$news->delete();
-Cách 2:
News::destroy(1);
//or
News::destroy(1, 2);
//or
News::destroy([1, 2, 3]);
//or
News::destroy(array(1, 2, 3));
-Trong đó: 1, 2, 3 là các id(primary) của bảng cần truy vấn.
-Cách 3:
News::where('id', 1)->delete();
3, Lời kết.
-Phần trên mình đã trình bày cho các bạn về Eloquent ORM trong Laravel rồi, đây là một phần cũng rất là quan trọng trong project nên mình mong các bạn cố gắng đọc cho kĩ để hiểu hơn về nó.
Đăng ký nhận tin.
Chúng tôi chỉ gửi tối đa 2 lần trên 1 tháng. Tuyên bố không spam mail!
Bạn ơi bạn có thể cho mk vài ví dụ áp dụng không nói như này nhưng lúc áp dụng khá mông lung
Hoang
7 năm trước
em chào anh,anh cho em hỏi tất cả các eloquent của model đều trả về đối tượng đứng không ạ,ban đầu em cứ tưởng là trả về một mảng các đối đượng:
ví dụ $abc=User::all();
mà $abc là đối tượng thì sao mình lại vẫn duyệt nó như duyệt mảng trong view được anh,
foreach($abc as $dt){
}
đặng xuân lộc
7 năm trước
Chào bạn, tùy vào eloquent mà bạn dùng thì Laravel sẽ trả về kết quả tương ứng.
Không phải bất cứ khi nào nó cũng trả về mảng các đối tượng (tùy vào mình quyết định)
VD:
1. $abc=User::all(); -> Mảng đối tượng (trong laravel gọi là Collections)
2. $abc=User::first(); -> Đối tượng User
3. $abc=User::where('email', '[email protected]')->get() ->Mảng đối tượng User (trong laravel gọi là Collections)
4. $abc=User::where('email', '[email protected]')->first() -> Đối tượng User
Hữu Viên
6 năm trước
like !
pham duc dao
5 năm trước
không hiểu các ví dụ này nên viết vào file nào cho lắm
vuduchoang
5 năm trước
chào anh, anh có thể hướng dẫn cách đếm số lương người dùng, sản phẩm, tin tức ở dashboard trang admin được không ạ. em cảm ơn
cường
5 năm trước