路由

定义路由

使用 Inertia 时,所有应用程序的路由都在服务器端定义。这意味着您不需要 Vue Router 或 React Router。相反,您可以简单地定义 Laravel 路由,并从这些路由返回 Inertia 响应

简写路由

如果您有一个 页面 不需要相应的控制器方法,例如“常见问题解答”或“关于”页面,您可以通过 Route::inertia() 方法直接路由到组件。

Route::inertia('/about', 'About');

生成 URL

一些服务器端框架允许您从命名路由生成 URL。但是,您在客户端将无法访问这些助手。以下是一些在 Inertia 中仍然使用命名路由的方法。

第一个选项是在服务器端生成 URL 并将其作为道具包含在内。请注意,在此示例中,我们将 edit_urlcreate_url 传递给 Users/Index 组件。

class UsersController extends Controller
{
    public function index()
    {
        return Inertia::render('Users/Index', [
            'users' => User::all()->map(function ($user) {
                return [
                    'id' => $user->id,
                    'name' => $user->name,
                    'email' => $user->email,
                    'edit_url' => route('users.edit', $user),
                ];
            }),
            'create_url' => route('users.create'),
        ]);
    }
}

但是,当使用 Laravel 时,Ziggy 库可以通过全局 route() 函数使您能够访问命名服务器端路由。事实上,如果您正在使用 Laravel 的 入门套件 之一开发应用程序,Ziggy 已经为您配置好了。

如果您将 Ziggy 与 Vue 一起使用,将此函数作为自定义 $route 属性提供将非常有用,这样您就可以直接在模板中使用它。

app.config.globalProperties.$route = route
<Link :href="$route('users.create')">Create User</Link>