Package spatie/menu full phần 2 tách ra để nghiên cứu (ok)

https://github.com/sawirricardo/realworld-tall-app/tree/main

Source study

Part 1: Tạo dữ liệu đăng nhập chưa có xác thực

C:\xampp82\htdocs\lva8\app\Models\Post.php

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
  use HasFactory;
  protected $fillable = [
    'detail',
    'slug'
  ];
}

C:\xampp82\htdocs\lva8\app\Providers\AppServiceProvider.php

C:\xampp82\htdocs\lva8\database\factories\PostFactory.php

C:\xampp82\htdocs\lva8\database\factories\UserFactory.php

C:\xampp82\htdocs\lva8\database\migrations\2014_10_12_000000_create_users_table.php

C:\xampp82\htdocs\lva8\database\migrations\2023_10_04_062832_create_posts_table.php

C:\xampp82\htdocs\lva8\database\seeders\DatabaseSeeder.php

C:\xampp82\htdocs\lva8\database\seeders\PostSeeder.php

C:\xampp82\htdocs\lva8\resources\views\welcome.blade.php

Part 2: Có dữ liệu đăng nhập chưa có xác thực

C:\xampp82\htdocs\lva8\app\Providers\AppServiceProvider.php

Nếu có đăng nhập rồi thì sẽ thấy link này

Kiểu xác thực như này

addItemParentClass

addParentClass

C:\xampp82\htdocs\lva8\app\Providers\AppServiceProvider.php

each, route

C:\xampp82\htdocs\lva8\app\Providers\AppServiceProvider.php

addItemClass

https://github.com/spatie/laravel-menu/issues/39

addClass

C:\xampp82\htdocs\lva8\app\Providers\AppServiceProvider.php

C:\xampp82\htdocs\lva7\app\Providers\AppServiceProvider.php

setActiveFromRequest

Chưa sử dụng cái này trong trường hợp cụ thể.

setWrapperTag

C:\xampp82\htdocs\lva8\app\Providers\ViewServiceProvider.php

C:\xampp82\htdocs\lva8\config\app.php

C:\xampp82\htdocs\lva8\resources\views\welcome.blade.php

withoutParentTag

C:\xampp82\htdocs\lva8\app\Providers\ViewServiceProvider.php

https://spatie.be/docs/menu/v3/basic-usage/adding-items

prepend && setActiveClass

C:\xampp82\htdocs\lva8\app\Providers\ViewServiceProvider.php

Part 3: Hoàn thiện project

Chú ý: Để không bị bắt lỗi addIf của menu thì chúng ta tạo điều kiện để người dùng yêu cầu cần phải đăng nhập và xác thực trước khi có thể sử dụng Spatie\Menu\Menu::addIf(): Argument #1 ($condition) must be of type callable|bool, null given, called in C:\xampp82\htdocs\lva8\app\Providers\ViewServiceProvider.php on line 45 Bỏ mã này đi: C:\xampp82\htdocs\lva8\resources\views\layouts\app.blade.php

C:\xampp82\htdocs\lva8\routes\web.php

C:\xampp82\htdocs\lva8\app\Concerns\HasRoles.php

C:\xampp82\htdocs\lva8\app\Http\Controllers\Backend\DashboardController.php

C:\xampp82\htdocs\lva8\app\Http\Controllers\HomeController.php

C:\xampp82\htdocs\lva8\app\Http\Controllers\PostController.php

C:\xampp82\htdocs\lva8\app\Models\Post.php

C:\xampp82\htdocs\lva8\app\Models\Role.php

C:\xampp82\htdocs\lva8\app\Models\User.php

C:\xampp82\htdocs\lva8\app\Providers\ViewServiceProvider.php

C:\xampp82\htdocs\lva8\config\app.php

C:\xampp82\htdocs\lva8\database\factories\PostFactory.php

C:\xampp82\htdocs\lva8\database\factories\RoleFactory.php

C:\xampp82\htdocs\lva8\database\factories\UserFactory.php

C:\xampp82\htdocs\lva8\database\migrations\2014_10_12_000000_create_users_table.php

C:\xampp82\htdocs\lva8\database\migrations\2023_10_04_062832_create_posts_table.php

C:\xampp82\htdocs\lva8\database\migrations\2023_10_04_080352_create_roles_table.php

C:\xampp82\htdocs\lva8\database\migrations\2023_10_04_080922_create_role_user_table.php

C:\xampp82\htdocs\lva8\database\seeders\DatabaseSeeder.php

C:\xampp82\htdocs\lva8\database\seeders\PostSeeder.php

C:\xampp82\htdocs\lva8\database\seeders\RoleSeeder.php

C:\xampp82\htdocs\lva8\database\seeders\UserSeeder.php

C:\xampp82\htdocs\lva8\resources\views\backend\index.blade.php

C:\xampp82\htdocs\lva8\resources\views\layouts\app.blade.php

C:\xampp82\htdocs\lva8\resources\views\home.blade.php

C:\xampp82\htdocs\lva8\resources\views\welcome.blade.php

Đăng nhập với vai trò là full quyền.

Đăng nhập với vai trò không có quyền gì.

3MB
archive
Open
Dùng source này để thực hành tiếp package laravel-permission

Last updated

Was this helpful?