如果我有表格:
<form method="get" action="<?=action( "SomethingController@DoSomething" ) )?>">
<select name="SomethingID">
<?php foreach( $somethings as $something ) : ?>
<option value="<?=$something->id?>"><?=$something->title?></option>
<?php endforeach; ?>
</select>
</form>
我如何为此做一个路由,以便我的DoSomething函数获得一个id给它,而不是像www.example.com/project/3/something?SomethingID=7
Route::get( "project/3/something/{SomethingID}", "SomethingController@DoSomething", function( $somethingID ) {
return App::make( "SomethingController" )->DoSomething( $somethingID );
} );
我希望网址为www.example.com/project/3/something/7
问题在于它不能成为一个帖子......因为人们永远不能只是简单地转到那个网址......他们总是要发帖。
我是否需要让下拉框用javascript更改按钮的href,然后从中生成正确的URL?
似乎无法在此处找到任何内容: http://laravel.com/docs/4.2/routing
答案 0 :(得分:0)
我觉得你做的一切都是正确的......我对你要做的事情感到有些困惑,然后做了“错误的”(因为一切看起来都是正确的),所以请提前道歉在黑暗中。你可以使用简单的标签而不是选择吗?
@foreach($somethings AS $something)
<a href="{{ URL::to('3/something/'.$something->id) }} ">{{ $something->title }}</a>
@endforeach
这样,点击该链接即可将其转到www.example.com/project/3/something/7 - &gt;或者链接生成的任何ID。至于路由,你可以这样做:
Route::get("project/3/something/{SomethingID}", "SomethingController@getSomething");
Route::post("project/3/something/{SomethingID}", "SomethingController@postSomething");
你的控制器:
public function getSomething($somethingID){
// Handle returning the view and whatever else you need
}
public function postSomething($somethingID){
// Handle the post function (i.e. do stuff.)
}
当路由依赖于变量ID时,有几件事要尝试,但是如果你想要完成其他事情,请留下评论,我也会研究它。
干杯!