Php Laravel更新数据库路由
我正在尝试更新数据库中的一列,其中包含一个项目的总投票数。我有一个404问题,但我没有看到我的路线上的问题。(附注:拉威尔3) 这是我对每个项目的投票按钮:Php Laravel更新数据库路由,php,laravel,laravel-3,Php,Laravel,Laravel 3,我正在尝试更新数据库中的一列,其中包含一个项目的总投票数。我有一个404问题,但我没有看到我的路线上的问题。(附注:拉威尔3) 这是我对每个项目的投票按钮: {{ Form::open('project/addvote', 'VOTE') }} {{ Form::hidden('id', $project->id) }} {{ Form::submit('Vote') }} {{ Form::close() }} 因此,当您单击投票按钮时,它将使用以下路线: Route::put('pr
{{ Form::open('project/addvote', 'VOTE') }}
{{ Form::hidden('id', $project->id) }}
{{ Form::submit('Vote') }}
{{ Form::close() }}
因此,当您单击投票按钮时,它将使用以下路线:
Route::put('project/addvote', array('uses'=>'projects@addvote'));
这是我在项目控制器中的操作(还没有更新,只是尝试重定向):
正在重定向到此路由:
Route::get('project/(:num)', array('as'=>'project', 'uses'=>'projects@project'));
这就是404错误
感谢这里的每一个回复和巨大的帮助 实际上,Redirect::to_route
要求重定向到它的路由的名称,并且命名路由必须用名称声明,如
路由::put('project/addvote',array('as'=>'project','uses'=>'projects@addvote'));
所以,你可以使用它;它的名字重定向到它,就像
return Redirect::to_route('project');
在这里,project
已使用'as'=>'project'
作为其名称。在你的例子中,你没有给路线命名,在这里
路由::put('project/addvote',array('uses'=>'projects@addvote'));
缺少,as=>'route\u 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'));
更新:
你应该把问题贴在原始代码上,无论如何,改变这个
return Redirect::to_route('project', $id);
到
实际上,Redirect::to_route
要求重定向到它的路由的名称,并且命名路由必须用名称声明,如
路由::put('project/addvote',array('as'=>'project','uses'=>'projects@addvote'));
所以,你可以使用它;它的名字重定向到它,就像
return Redirect::to_route('project');
在这里,project
已使用'as'=>'project'
作为其名称。在你的例子中,你没有给路线命名,在这里
路由::put('project/addvote',array('uses'=>'projects@addvote'));
缺少,as=>'route\u 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'));
更新:
你应该把问题贴在原始代码上,无论如何,改变这个
return Redirect::to_route('project', $id);
到
不,实际上我有重定向路线。路由::get('projets',array('as'=>'projets','uses'=>'projets@index')); 所以我仍然有同样的问题,在你的问题中,你发布的路线是
route::put('project/addvote',array('uses'=>)projects@addvote'));代码>也许你应该用确切的路线和代码更新你的问题。这就是我按下“投票”按钮,发送到启动addVote功能的路线时的路线。然后,addVote函数重定向回projects菜单,返回我刚才显示的路线。很抱歉造成混淆,收到了,但您传递了一个id,如$id
,您在路线中提到了吗?很抱歉,我没有给出正确的路线。我将编辑主要问题,使其更清晰不,我实际上有重定向路线。路由::get('projets',array('as'=>'projets','uses'=>'projets@index')); 所以我仍然有同样的问题,在你的问题中,你发布的路线是route::put('project/addvote',array('uses'=>)projects@addvote'));代码>也许你应该用确切的路线和代码更新你的问题。这就是我按下“投票”按钮,发送到启动addVote功能的路线时的路线。然后,addVote函数重定向回projects菜单,返回我刚才显示的路线。很抱歉造成混淆,收到了,但您传递了一个id,如$id
,您在路线中提到了吗?很抱歉,我没有给出正确的路线。我将编辑主要问题,使其更清楚