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

setActiveClassOnLink
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
submenu
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ì.




Last updated
Was this helpful?