gpt4 book ai didi

php - 尝试从数据库中删除某些内容时,RouteCollection.php 中的 Laravel 5.1 NotFoundHttpException

转载 作者:行者123 更新时间:2023-11-29 11:53:29 25 4
gpt4 key购买 nike

我正在构建一个应用程序,用户可以在其中喜欢/不喜欢彼此的项目。我构建了一个系统,允许用户喜欢该作品,并且每个喜欢的作品都会以唯一的 id、project_id 和 user_id 存储在我的数据库中。

现在我正在构建“不同”部分,但在点击“不同”按钮时出现错误。

错误:

Sorry, the page you are looking for could not be found. NotFoundHttpException in RouteCollection.php line 161:

我的路线:

Route::post('projects/{id}', 'LikesController@store');
Route::get('projects/{id}','LikesController@destroy');

我的 Controller

public function store(Request $request)
{
$input = Request::all();
$like = new Like;
$like->user_id = Auth::user()->id;
$like->project_id = $input['project_id'];
$like->save();
return redirect('projects/'.$input['project_id']);
}

public function destroy($id)
{
$input = Request::all();
Like::find($id)->delete();
return redirect('projects/'.$input['project_id']);
}

我的表格

@if (Auth::check())
@if ($isLikedUser)
{!! Form::open(array('url'=>'projects/'.$project->id.'/deletelike','method'=>'POST')) !!}
{!! Form::hidden('project_id', $project->id) !!}
{!! Form::Submit('Unlike', array('class'=>'send-btn')) !!}
{!! Form::close() !!}
@else
{!! Form::open(array('url'=>'projects/'.$project->id,'method'=>'POST', 'id'=>'likeform')) !!}
{!! Form::hidden('project_id', $project->id) !!}
{!! Form::Submit('Like', array('class'=>'send-btn')) !!}
{!! Form::close() !!}
@endif
@else
<p>Log in to like.</p>
@endif

最佳答案

您的路线表明,当方法 id GET 时,删除就完成了。但在您的“不像”按钮中,您的表单方法是 POST。将其更改为 GET。而且您为删除提供的操作网址是 'projects/'.$project->id.'/deletelike' 但在您的 route ,您没有这样的路线结构。另外,如果您使用 GET 发布此内容,则不需要隐藏的 project_id,因为它已经在 url 中传递。所以你的删除表单应该是这样的

{!! Form::open(array('url'=>'projects/'.$project->id,'method'=>'GET')) !!}
{!! Form::Submit('Unlike', array('class'=>'send-btn')) !!}
{!! Form::close() !!}

编辑1最好像这样改变你的路由,并使用 post 来表示相似和不相似:

Route::post('projects/like/{id}', 'LikesController@store');
Route::post('projects/unlike/{id}','LikesController@destroy');

并以您的形式

{!! Form::open(array('url'=>'projects/like'.$project->id,'method'=>'POST')) !!}

对于不同的形式

{!! Form::open(array('url'=>'projects/unlike/'.$project->id,'method'=>'POST')) !!}

你的删除方法应该是

public function destroy($id)
{
$input = Request::all();
Like::whereProjectId($id)->whereUserId(Auth::user()->id)->delete();
return redirect('projects/'.$input['project_id']);
}

关于php - 尝试从数据库中删除某些内容时,RouteCollection.php 中的 Laravel 5.1 NotFoundHttpException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33606140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com