XÂY DỰNG TRANG QUẢN TRỊ LARAVEL 9 VỚI LARAVEL-ADMIN BẰNG DEMO 1 TRANG BLOG CÁ NHÂN PHẦN 10 : Rules trong laravel admin và quan hệ many to many
1 Rule unique
Trong quản trị admin đôi khi chúng ta cần đảm bảo 1 collums chỉ cho tồn tại 1 giá trị :
Dưới đây là code demo tạo đường dẫn của post
$form->text('slug', __('Đường dẫn'))->rules(function ($form){
if (!$form->model()->id) {
return 'unique:posts,slug';
}else{
return 'unique:posts,slug,'.$form->model()->id;
}
});
2 Many to Many
Dưới đây chúng ta có 1 demo mối quan hệ giữa các bảng
tags
id-integer
name-string
posts
id-integer
name-string
post_tag
post_id-integer
tag_id-integer
Dưới đây là code model
class Post extends Model
{
public function tags(){
return $this->belongsToMany(Tag::class,'post_tag','post_id','tag_id');
}
}
class Tag extends Model
{
public function posts(){
return $this->belongsToMany(Post::class,'post_tag','tag_id','post_id');
}
}
Trong laravel-admin có 2 thành phần là multipleSelect
và checkbox hỗ trợ model many to many
Cách dùng multipleSelect
$form = new Form(new Post);
$form->multipleSelect('tags','Tags')->options(Tag::all()->pluck('name','id'));
Cách dùng với checkbox
$form = new Form(new Post);
$form->checkbox('tags','Tags')->options(Tag::all()->pluck('name','id'));