Laravel 4路由:不能多次使用变量名

时间:2013-10-26 22:58:29

标签: laravel laravel-4

我遇到了Laravel 4路由问题。我正在尝试创建两组路线:

domain.com/meetings/aa, al-anon, etc.
domain.com/meetings/day/sun, mon, tue, etc.

以下是我在路线文件中指定的内容:

Route::resource('meetings/day/{dayName}', 'Meetings_DayController');
Route::resource('meetings/{fellowshipName}', 'Meetings_MeetingController');

我需要能够将变量传递给我的资源控制器。但无论我把路线放在什么顺序,我都会遇到这种错误:

Route pattern "/meetings/fellowship/{fellowshipName}/{{fellowshipName}}" cannot 
reference variable name "fellowshipName" more than once. 

不仅如此,但这两条路线会导致其他未申报的路线出现同样的错误。我的404路线由于某种原因没有启动。想法,有人吗?我已经尝试了所有我能想到的东西。如果我可以将三个字母的字符串与日控制器路由匹配,那就行了,但我无法弄清楚Laravel中三个字母字符串的正则表达式。 \w{3}不起作用。

1 个答案:

答案 0 :(得分:6)

您错误地使用了Route::resource。您不能(也不应该)将变量传递给资源控制器。相反,您需要使用您需要的动词和参数声明一个新路线。 Route::resource仅为您创建几个预处理路由,以便快速进行CRUD RESTful访问

在此处查看类似情况的答案:https://stackoverflow.com/a/19608572/385402