我正在使用Laravel 5.4,VueJS,AXIOS,VueRouter的應用程序。 VueRouter負責所有應用程序的導航,除以下航線配置:移動到下一個路線,如果找不到一些URL
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Auth::routes();
Route::get('/{catchall?}', ['as' => 'start', 'middleware' => 'auth', function() {
return view('home')->with([...]);
}])->where('catchall', '.*');
這基本上將用戶重定向到「基地」刀片文件,其中包含了<router-link></routerlink>
。然而,我現在在我的應用程序中實現了一個任何人都可以訪問的頁面(不需要auth中間件),並且完全利用了不同的佈局(因此需要一個新的刀片文件)。
優選地,這將這樣獲得:
app.sample.com/{some-string}
而不是別的這樣的:
app.sample.com/survey/{some-string}
{some-string}
是隨機生成的字符串,然後扔進D B。可以通過我的一個模型訪問。據我瞭解,我可以做這樣的事情:
Route::get('/{some-string}', '[email protected]')
配售這個包羅萬象應該工作上面。但是,如果/{some-string}
與數據庫中的任何內容不匹配,我寧願將它處理爲catchall,它將服務於home.blade.php
是否有任何干淨的方式來處理此問題?
這是一個很好的觀點 - 甚至沒有想過要以這種方式解決問題。我感覺合理! – mdobrenko