我试图使用我的索引控制器来创建这样的网址结构:mydomain.com/vehiclemake/vehiclemodel/vehiclemodelyear
我不知道如何更改默认路线,或更改可按预期工作的副本。每当我将一个make添加到URL时加载页面,它就会给我一个空白的屏幕,并且日志告诉我它找不到一个控制器,其中包含该URL中的车辆名称。以下是默认设置和我尝试过的内容。
Route::set('vehicle', '(/<make>(/<model>(/<model_year>)))')
->defaults(array(
'controller' => 'index',
'action' => 'index',
));
Route::set('default', '(<controller>(/<action>(/<id>)))')
->defaults(array(
'controller' => 'index',
'action' => 'index',
));
我已尝试在stackoverflow上寻找答案,但我还没有找到一个类似于我的答案的问题。
答案 0 :(得分:0)
我不确定我是否理解你的问题。 无论如何,你不需要第一个/之前。
除此之外,这种结构还需要一个控制器,用于每个品牌,并在该控制器中为每个型号提供一个动作。我认为类似下面的代码将适用于uri:/ ferrari / testarossa / 1992
numlinesbefore = 2
numlinesafter = 2
linesbefore = []
for line in read_journal_enumerated('journal.0028.txt').splitlines():
if numlinesbefore = -1:
if numlinesafter > 0:
print(line)
numlinesafter -= numlinesafter
else:
break
if "jrn." and "username" in line.lower():
for bline in linesbefore:
print(bline)
print(line)
numlinesbefore = -1
else:
linesbefore = [line] + linesbefore
if len( linesbefore ) > numlinesbefore:
linesbefore.pop()
我认为路由的默认值总是如此,但我不确定。 控制器 行动 非凡的 4.Whateveryoudefine
希望这有帮助!
答案 1 :(得分:0)
您必须计划您的路由,以使一个URL不能与2条路由匹配。我建议:
Route::set('vehicle', '/<make>(/<model>(/<model_year>))')
->defaults(array(
'controller' => 'vehicle',
'action' => 'index',
));
Route::set('mainpage', '/')
->defaults(array(
'controller' => 'index',
'action' => 'index',
));
Route::set('default', '<controller>(/<action>(/<id>))', ['controller'=>'(index|user)'])
->defaults(array(
'controller' => 'index',
'action' => 'index',
));
请注意,我卸下了1对括号。对于default
路由正确的控制器是:index
和user
。