Php Laravel路由抛出NotFoundHttpException

Php Laravel路由抛出NotFoundHttpException,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,我在找人帮忙。我搜索了其他主题,大致了解了问题所在,但没有成功地在代码中修复它。 现在的问题是:当我尝试提交代码更新时,我没有发现HttpException 这是控制器和我的函数更新 <?php namespace App\Http\Controllers; use Request; use App\Http\Requests; use App\T_collaborateurs_table; class testing extends Controller { public

我在找人帮忙。我搜索了其他主题,大致了解了问题所在,但没有成功地在代码中修复它。 现在的问题是:当我尝试提交代码更新时,我没有发现HttpException

这是控制器和我的函数更新

<?php

namespace App\Http\Controllers;

use Request;
use App\Http\Requests;
use App\T_collaborateurs_table;

class testing extends Controller
{
    public function index()
    {
        $user = T_collaborateurs_table::all();
        return view ("read", compact("user"));
    }
    public function create()
    {
        return view("create");
    }

    public function store(Request $Request)
    {
        T_collaborateurs_table::create(Request::all());

        return redirect("index");
    }

    public function show($id)
    {
        $user=T_collaborateurs_table::find($id);
        return view("show", compact("user"));
    }

    public function edit($id)
    {
        $user=T_collaborateurs_table::find($id);
        return view("update", compact("user"));
    }

    public function update(Request $Request, $id)
    {
        $user = T_collaborateurs_table::find($id);
        $user->update(Request::all());

        return redirect("index");
    }
}
现在是视图update.blade.php

<body>
    {{Form::model($user, ['method'=>'patch', 'action'=>['testing@update',$user->id]])}}

    {{Form::label('Id_TCa', 'ID')}}
    {{Form::text('Id_TCa')}}
    {{Form::label('Collaborateur_TCa', 'collab')}}
    {{Form::text('Collaborateur_TCa')}}
    {{Form::label('Responsable_TCa', 'resp')}}
    {{Form::text('Responsable_TCa')}}

    {{Form::submit("update")}}
    {{Form::close()}}
</body>
我很抱歉,如果我的话不是很容易理解。。。 感谢大家抽出时间。

尝试在功能更新时使用:

尝试在函数更新时使用:


您可以尝试通过添加

{{ method_field('PATCH') }}
在表单中,并将表单方法更改为POST

将id添加为隐藏字段

{{ Form::hidden('id', $user->id) }}
访问控制器中的id作为

public function update(Request $Request)
{
    $id = Input::get('id');
    $user = T_collaborateurs_table::find($id);
    $user->update(Request::all());

    return redirect("index");
}
还需要相应地修改您的路线

Route::patch("update", "testing@update");

您可以尝试通过添加

{{ method_field('PATCH') }}
在表单中,并将表单方法更改为POST

将id添加为隐藏字段

{{ Form::hidden('id', $user->id) }}
访问控制器中的id作为

public function update(Request $Request)
{
    $id = Input::get('id');
    $user = T_collaborateurs_table::find($id);
    $user->update(Request::all());

    return redirect("index");
}
还需要相应地修改您的路线

Route::patch("update", "testing@update");
或者尝试使用“路由”而不是“操作”,要使用“路由”,您只需要在更新路由中进行一些编辑

Route::patch("update/{id}", array('as' => 'task-update', 'uses'=>'testing@update'));
在你看来:

 {{Form::model($user, ['method'=>'PATCH', 'route'=>['task-update',$user->id]])}}
请遵循类命名的约定。您的类名应为“TestingController”或“Testing”

或者尝试使用“路由”而不是“操作”,要使用“路由”,您只需要在更新路由中进行一些编辑

Route::patch("update/{id}", array('as' => 'task-update', 'uses'=>'testing@update'));
在你看来:

 {{Form::model($user, ['method'=>'PATCH', 'route'=>['task-update',$user->id]])}}


请遵循类命名的约定。你的类名应该是“TestingController”或“Testing”。

为什么不使用put来对付补丁?你能运行php artisan route:列出并发布结果吗?嗨,路易斯,事实上我在互联网上使用了一个教程,我了解一些Laravel,但我试图提高自己。如果我将该方法更改为put,我不知道我的代码中要做什么更改才能使其正常工作:@我只需要在我的视图和路线中更改该方法就可以了?如果您要使用与资源控制器相同的基本方法,我建议改为使用资源控制器@我编辑我的线程来添加我的路线:列表,坦克!为什么不使用put对抗补丁?你能运行php artisan route:列出并发布结果吗?嗨,路易斯,事实上我在互联网上使用了一个教程,我了解一点Laravel,但我试着提高自己。如果我将该方法更改为put,我不知道我的代码中要做什么更改才能使其正常工作:@我只需要在我的视图和路线中更改该方法就可以了?如果您要使用与资源控制器相同的基本方法,我建议改为使用资源控制器@我编辑我的线程来添加我的路线:列表,坦克!像这样的?它仍然不起作用。。。{{Form::model$user,['method'=>'patch','action'=>['testing@update“,$user->id]]}{{csrf_field}{{method_field'PATCH}{{Form::label'id_TCa',id'}{{Form::text'id_TCa'}{{Form Form::label'collabour_TCa',collab'}{{Form Form text'collabour_TCa'}{{Form Form label'Responsable_TCa',resp'}{Form label'{{Form::submitupdate}{{Form::close}{{Form::model$user,['method'=>'POST','action'=>['testing@update“,$user->id]]}{{{method_字段'PATCH'}}我尝试这样做,但出现了新的错误:错误异常缺少App\Http\Controllers\testing::update的参数2。因此,在我的控制器公共函数updateRequest$Request上的这一行,$id您可以发布生成的表单html吗?我成功了,我向您解释。在我的其他函数中,我使用$id,您可以在我的编辑函数和我的显示函数中看到它,但m我的数据库中的y id称为id_TCa。因此我在您的帮助下生成$id=Input::get'id_TCa';现在我的更新正在工作。我只是不明白为什么在我的其他函数中$id可以工作,但在我的更新函数中我需要使用$id_TCa,这肯定是因为我是一个noob:pOh好的,我现在明白了…所以对于另一个函数,只需按照@linktoa href的说明进行操作,但是,在数据库中使用ID的名称进行函数更新非常感谢你linktoahref,这是因为你和你的dd$ID我看到ID为空,所以我改为ID\tCA类似的内容?它仍然不起作用…{{Form::model$user,['method'=>'patch','action'=>['testing@update“,$user->id]]}{{csrf_字段}{{method_字段'PATCH'}{{Form::label'Id\u TCa',Id'}{{Form::text'Id\u TCa'}{{Form::label'collabour\u TCa',collab'}{{{Form::text'collabour\u TCa'}{{{Form label'Responsable\u TCa',resp'}{{Form text'Responsable\u TCa'}{{Form submitdate}{Form Form submitdate}{Form close}}{Form model::close}}{Form model'='testing@update“,$user->id]]}{{method_字段'PATCH'}我尝试这样做,但出现了新的错误:错误异常缺少App\Http\Controllers\testing::update的参数2。因此,在我的控制器公共函数updateRequest$Request上的这一行,$id您可以发布生成的表单html吗?我成功了,我向您解释。在我的其他函数中,我使用$id,您可以在我的编辑函数和我的显示函数中看到它,但m我的数据库中的y id称为id_TCa。因此,我在您的帮助下生成$id=Input::get'id_TCa';现在我的更新正在运行
G我只是不明白为什么在我的其他函数中$id可以工作,但是在我的更新函数中我需要使用$id\u TCa,当然是因为我是一个noob:pOh好的,我现在明白了。。。因此,对于另一个,只需按照@linktoahref的说明进行操作,但在DB中使用您的ID名称,并使用函数更新。非常感谢您linktoahref,感谢您和您的dd$ID。我看到ID为空,所以我改为ID\u感谢您的帮助,我尝试了它,但仍然存在相同的错误。哦,编辑您的更新函数,公共函数updateRequest$Request{$user=T_collaborators\u table::find$Request->id;$user->updateRequest::all;return redirectindex;}我在第一次响应中保留了新路由和视图+新函数,但问题仍然存在。也许我可以给你看看我的模型?或者这不是问题所在?再一次谢谢你的时间。好的,然后接受这个作为答案。谢谢你molagbal的帮助,我试过了,但仍然存在相同的错误。哦,编辑你的更新函数,公共函数updateRequest$Request{$user=T\u collabours\u table::find$Request->id;$user->updateRequest::all;return redirectindex;}我在你的第一次回应中保留了你的新路线和观点+你的新功能,但问题仍然存在。也许我可以给你看看我的模型?或者这不是问题所在?再一次谢谢您的时间。好的,那么请接受以下回答: