我已經設置子域的路由我的應用程序(使用Laravel 5.4)具有以下web.php
路線:Laravel子域的路由設置全球第路線()輔助
Route::domain('{company}.myapp.localhost')->group(function() {
// Locations
Route::resource('/locations' , 'LocationController');
// Services
Route::resource('/services' , 'ServiceController');
});
但是作爲我show
和edit
端點需要被傳遞的ID,在一個ErrorException
使用正常route('services.show')
助手結果說明Missing required parameters for [Route: services.create] [URI: services/create].
我明白這是必要的,但隨着company
被關聯到用戶在登錄(和是在子域)我不要wa nt通過這個每個觀點。我想在全球範圍內設置它。
爲了避免重複查詢,我想到了在會話存儲這是如此(在:
protected function authenticated(Request $request, $user)
{
$current_company = $user->companies->first();
$company = [
'id' => $current_company->id,
'name' => $current_company->name,
'display_name' => $current_company->display_name
];
$request->session()->put('company', $company);
}
這很好,但我不知道我是否可以通過這個來作爲中間件或東西路線。公司是怎樣在這裏最好的解決方案
爲什麼不能傳遞參數的https://en.wikipedia.org/wiki/Representational_state_transfer –
我知道我需要傳遞的參數,我只是不確定在全球範圍內做到這一點的最佳實施。將它保存到會話中可以在控制器中進行檢索,但由於我需要這個參數,因此應該有更好的方法來完成這個任務,因此它已經被配置,而不必在每個控制器中重新聲明它。 – Sheixt
我對Laravel比較新,所以我不確定最佳實踐...... – Sheixt