Laravel更新数据库路由


Laravel updating database route

我正试图用一个项目的总票数更新数据库中的一列。我有一个404的问题,但在我的路线上看不到问题。(附言:Laravel 3)

这是我在每个项目上的投票按钮:

{{ Form::open('project/addvote', 'VOTE') }}
{{ Form::hidden('id', $project->id) }}
{{ Form::submit('Vote') }}
{{ Form::close() }}

因此,当你点击投票按钮时,它会使用以下路线:

Route::put('project/addvote', array('uses'=>'projects@addvote'));

这是我在项目控制器中的操作(还没有更新,只是试图重定向):

public function put_addvote(){
        return Redirect::to_route('project', $id)
        ->with('message', 'Vote successful');
}

重定向到此路由:

Route::get('project/(:num)', array('as'=>'project', 'uses'=>'projects@project'));

这给我带来了404错误的

感谢每一个回应和这里的大力帮助!

实际上,Redirect::to_route需要一个路由的名称重定向到它,并且命名路由必须用一个名称来声明,比如

路由::put('project/addvote',array('as'=>'project','uses'=>'projects@addvote'))

所以,你可以使用它;s的名称重定向到它,如

return重定向::to_route('project')在这里,project已被用作使用'as' => 'project'的名称。在您的示例中,您没有为路线提供任何名称,此处

路由::put('project/addvote',array('uses'=>'projects@addvote'))缺少,as => 'route_name'

对于第二个问题,您可以将其作为

$id = Input::get('id');
Project::find($id);
Project->votenumber = 5;
Project->->save();

插入&更新模型

更新:

这有点令人困惑,但在通过评论系统进行对话后,路由的答案如下:

你(OP)提到你有一条被宣布为的路线

 Route::get('projets', array('as'=>'projets', 'uses'=>'projets@index'));

您正试图使用此重定向到此路线

return Redirect::to_route('project', $id);

所以,你正在传递一个参数,但它不在你的路由声明中,这就是问题所在,所以为了克服这个问题,将你的路由宣言更改为这个

Route::get('projets/(:num)', array('as'=>'projets', 'uses'=>'projets@index'));

Route::get('projets/(:any)', array('as'=>'projets', 'uses'=>'projets@index'));

或者,您可以使用?使参数可选,例如:

Route::get('projets/(:any?)', array('as'=>'projets', 'uses'=>'projets@index'));

检查通配符路由

更新:

无论如何,你应该已经发布了带有问题的原始代码更改此
return Redirect::to_route('project', $id);

return Redirect::to_route('project', array($id));