Nhảy tới nội dung
Phiên bản: 7.3.0

Category

Class PostCategory cung cấp cho bạn các method thao tác với data của danh mục bài viết

Khi sử dụng Query Builder không có điều kiện cate_type mặc định cate_type sẽ là post_categories

Thao tác với danh mục

get / first

Method get trả thông tin PostCategory theo điều kiện Query Builder, Nếu truy vấn của bạn có nhiều hơn một PostCategory, method chỉ trả về hàng đầu tiên. Kết quả được trả về như một đối tượng.

$category = PostCategory::get(Qr::set($id)->select('id', 'name', 'excerpt'));
//or
$category = PostCategory::where('id', $id)->select('id', 'name', 'excerpt')->first();

gets / fetch

Method gets trả về danh sách PostCategory theo điều kiện Query Builder

$categories = PostCategory::gets(Qr::set('trash', 0)->select('id', 'title'));
//or
$categories = PostCategory::where('trash', 0)->select('id', 'title')->fetch();

Lấy và sắp sếp danh mục theo level

$categories = PostCategory::select('name', 'level')->tree();
/* Array
(
[0] => stdClass Object (
[name] => Blog
[level] => 1
)
[1] => stdClass Object (
[name] => Blog 1
[level] => 2
)
[2] => stdClass Object (
[name] => Blog 2
[level] => 2
)
[3] => stdClass Object (
[name] => Projects
[level] => 1
)
[4] => stdClass Object (
[name] => Jobs
[level] => 1
)
[5] => stdClass Object (
[name] => Jobs HCM
[level] => 2
)
[6] => stdClass Object (
[name] => Jobs HN
[level] => 2
)
) */

Trả về cây thư mục lồng nhau

$categories = PostCategory::select('name')->multilevel();
/* Array
(
[0] => stdClass Object (
[name] => Blog
[child] => Array (
[0] => stdClass Object (
[name] => Blog 1
[child] => Array ()
)
[1] => stdClass Object (
[name] => Blog 2
[child] => Array ()
)
)
)

[1] => stdClass Object (
[name] => Projects
)
[2] => stdClass Object (
[name] => Jobs
[child] => Array (
[0] => stdClass Object (
[name] => Jobs HCM
[child] => Array ()
)
[1] => stdClass Object (
[name] => Jobs HN
[child] => Array ()
)
)
)
) */

Trả về cây thư mục phẳng theo dạng key => value

$categories = PostCategory::select('id', 'name', 'level')->options();
/* Array
(
[0] => Chọn danh mục
[1] => Blog
[2] => |-----Blog 1
[3] => |-----Blog 2
[4] => Projects
[5] => Jobs
[6] => |-----Jobs HCM
[7] => |-----Jobs HN
) */

PostCategory::children

Method PostCategory::children trả về danh sách id của danh mục con theo danh mục cha

Tham số truyền vào bao gồm:

::children($args)
ParamsTypeDescriptionDefault
andParentboolNếu true kết quả trả về sẽ kèm theo cả id danh mục chafalse
idintId danh mục cha cần lấy danh sách id danh mục con
categoryobjectNếu không có id sẽ lấy theo object danh mục (phải bao gồm id, lft, rgt)null
$listId = PostCategory::children(['andParent' => true, 'id' => 1]);
$listId = PostCategory::children(['andParent' => true, 'category' => PostCategory::get(Qr::set(1)->select('id', 'lft', 'rgt'))]);

count / amount

Method count trả về số lượng PostCategory theo điều kiện Query Builder

$categoryNumber = PostCategory::count(Qr::set('trash', 0));
//or
$categoryNumber = PostCategory::where('trash', 0)->amount();

PostCategory::insert

Method PostCategory::insert thêm or cập nhật thông tin PostCategory

Tham số thứ nhất nhận vào là một mãng bao gồm:

Column NameTypeDescriptionDefault
namestringTiêu để của danh mục
excerptstringMô tả ngắn cho danh mụcnull
contentstringNội dung chi tiết cho danh mụcnull
imagestringĐường dẫn ảnh đại diện cho danh mụcnull
slugstringĐường dẫn của danh mục nếu không truyền hệ thống tự tạo từ tiêu đềauto
seo_titlestringmeta title tự động lấy từ name nếu không điềnauto
seo_descriptionstringmeta description tự động lấy từ excerpt nếu không điềnauto
seo_keywordsstringmeta keywords
statusintTrạng thái 0 bình ường, 1 nổi bật0
publicintTrạng thái hiển thị 0 ẩn, 1 hiển thị1
orderintThứ tự sắp xếp danh mục0
cate_typestringLoại danh mụcpost_categories
parent_idintid danh mục cha0
user_updatedintId user cập nhật danh mụcauto
user_updatedintId user cập nhật danh mụcauto
languagearrayData các ngôn ngữ khác

Tham số thứ 2 nhận vào đối tượng $category cần cập nhật

Khi bạn truyền thêm column id thì method sẽ tiến hành cập nhật PostCategory

Kết quả sau khi thực thi:

Kết quảTypeDescription
Thành côngnumberId của PostCategory vừa ược thêm mới hoặc id PostCategory cập nhật
Thất bạiSKD_ErrorObject SKD_Error
//Thêm mới
$category = [
'name' => 'Tiêu đề bài viết',
'excerpt' => 'Nội dung tóm tắt',
'content' => 'Nội dung chi tiết',
'image' => 'uploads/images/example.png',
'public' => 1,
'parent_id' => 0,
'cate_type' => 'post_categories',
];
//Examples language mặc định là vi, ngôn ngữ phụ là en
$category['language'] = [
'en' => [
'title' => 'This is post name',
'excerpt' => 'excerpt post',
'content' => 'content post',
]
];

PostCategory::insert($category);
//Cập nhật
$postUpdate = [
'id' => 10
'title' => 'example title post',
];
PostCategory::insert($postUpdate);
//Cập nhật nếu có sẳn đối tượng cần cập nhật
//Để giảm tải câu lệnh SQL
$id = 10;
$post = PostCategory::get(Qr::set($id));
$postUpdate = [
'id' => $id
'title' => 'example title post',
];
PostCategory::insert($postUpdate, $post);

update

Method update cập nhật một hoặc nhiều post theo điều kiện Query Builder

Tham số truyền vào bao gồm:

::update($updateData, $args);
ParamsTypeDescription
$updateDataarraymãng các trường thay đổi và giá trị cập nhật
$pageNew = [
'title' => 'example title page',
]
PostCategory::whereIn('id', [1,2,3,4])->update($pageNew);

delete / remove

Method PostCategory::delete xóa toàn bộ thông tin một hoặc nhiều danh mục khỏi database,

Tham số truyền vào bao gồm:

::delete($where, $trash);
ParamsTypeDescription
$idintid danh mục cần xóa
PostCategory::delete($id);
//or
PostCategory::where('id', $id)->remove();

MetaData

Bảng categories của SkillDo được thiết kế để chỉ chứa thông tin cần thiết về người dùng. Do đó, để lưu trữ dữ liệu bổ sung, bảng categories_metadata đã được giới thiệu, có thể lưu trữ bất kỳ lượng dữ liệu tùy ý nào về người dùng

::getMeta

Method PostCategory::getMeta lấy metadata của danh mục

ParamsTypeDescription
$idintId của danh mục cần lấy metadata
$metaKeystringkey của metadata cần lấy
PostCategory::getMeta($id, 'views');

::updateMeta

Method PostCategory::updateMeta thêm mới (nếu metaKey chưa có) hoặc cập nhật metadata của danh mục

ParamsTypeDescription
$idintId của danh mục cần thêm (cập nhật) metadata
$metaKeystringkey của metadata cần thêm (cập nhật)
$metaValuemixgiá trị của metadata cần thêm (cập nhật)
PostCategory::updateMeta($id, 'views', 10);

::deleteMeta

Method PostCategory::deleteMeta xóa metadata của danh mục khỏi database

ParamsTypeDescription
$idintId của danh mục cần xóa metadata
$metaKeystringkey của metadata cần xóa
PostCategory::deleteMeta($id, 'views');