授权

使用 Inertia 时,最好在应用程序的授权策略中进行服务器端授权。但是,您可能想知道如何在 Inertia 页面组件中对授权策略进行检查,因为您无法访问框架的服务器端助手。

解决此问题的最简单方法是将授权检查的结果作为道具传递给页面组件。

class UsersController extends Controller
{
    public function index()
    {
        return Inertia::render('Users/Index', [
            'can' => [
                'create_user' => Auth::user()->can('create', User::class),
            ],
            'users' => User::all()->map(function ($user) {
                return [
                    'first_name' => $user->first_name,
                    'last_name' => $user->last_name,
                    'email' => $user->email,
                    'can' => [
                        'edit_user' => Auth::user()->can('edit', $user),
                    ]
                ];
            }),
        ]);
    }
}