當使用 Inertia 時,您應用程式的所有路由都在伺服器端定義。這表示您不需要 Vue Router 或 React Router。相反地,您可以簡單地定義 Laravel 路由並從這些路由返回 Inertia 回應。
如果您有一個頁面不需要對應的控制器方法,例如「常見問題」或「關於」頁面,您可以透過 Route::inertia()
方法直接路由到一個元件。
Route::inertia('/about', 'About');
某些伺服器端框架允許您從具名路由產生 URL。但是,您將無法在客戶端存取這些輔助函式。以下是一些仍然使用 Inertia 的具名路由的方法。
第一個選項是在伺服器端產生 URL,並將它們包含為 props。請注意,在此範例中,我們如何將 edit_url
和 create_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>