每當我們在旅行者中創建一個表時,航海家號稱它爲數據類型。對於我們創建的所有表/數據類型,Voyager用戶只能使用位於** vendor \ tcg \ voyager \ src \ Http \ Controllers **的一個控制器VoyagerBreadController.php。
例如,如果我創建了一個名爲的品牌。 Laravel將使用控制器VoyagerBreadController。
但是在哪裏使用或指向此控制器的路線。路線位於文件vendor \ tcg \ voyager \ routes \ voyager.php。在這個文件中,找到以下行:
try {
foreach (\TCG\Voyager\Models\DataType::all() as $dataTypes) {
Route::resource($dataTypes->slug, $namespacePrefix.'VoyagerBreadController');
}
} catch (\InvalidArgumentException $e) {
throw new \InvalidArgumentException("Custom routes hasn't been configured because: ".$e->getMessage(), 1);
} catch (\Exception $e) {
// do nothing, might just be because table not yet migrated.
}
在我的版本,這些線路都是37
號線29之間。如你所看到的,上面的代碼獲取我們所有的數據類型和創建爲我們的表/數據類型提供資源路徑。
現在,如果我想覆蓋此路線並創建一個路徑使用我自己的控制器進行特定操作。例如,如果我想爲品牌/創建網址創建路線。我可以用(37行之後即)只需添加以下代碼上方以下行(我的路線)做到這一點:
Route::get('brands/create', function(){return 'abc';})->name('brands.create');
,或者您可以通過在路徑\ web.php後添加以下行做同樣的旅行者::路線();
Route::get('brands/create', function(){return 'abc';})->name(**'voyager.brands.create'**);
@Milad,接受答案作爲解決方案,如果它幫助你 –