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

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'));