路由

定義路由

當使用 Inertia 時,您應用程式的所有路由都在伺服器端定義。這表示您不需要 Vue Router 或 React Router。相反地,您可以簡單地定義 Laravel 路由並從這些路由返回 Inertia 回應

簡寫路由

如果您有一個頁面不需要對應的控制器方法,例如「常見問題」或「關於」頁面,您可以透過 Route::inertia() 方法直接路由到一個元件。

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

產生 URL

某些伺服器端框架允許您從具名路由產生 URL。但是,您將無法在客戶端存取這些輔助函式。以下是一些仍然使用 Inertia 的具名路由的方法。

第一個選項是在伺服器端產生 URL,並將它們包含為 props。請注意,在此範例中,我們如何將 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>