【发布时间】:2016-03-03 23:48:34
【问题描述】:
每当我尝试更新用户时,我都会收到:NotFoundHttpException in RouteCollection.php line 161: 错误。我希望它能够在 zoekEmail 输入中填写电子邮件。它将更新数据库中的该行。任何人都可以在以下代码中找到任何缺陷吗?
控制器功能:
public function changeMedewerker(){
$email = Route::current()->getParameter('email');
return User::updateMedewerker($email);
}
模型功能:正如您在此处看到的,我想检查电子邮件是否与视图中检查的输入相同(名称=zoekmail)
public static function updateMedewerker($email)
{
DB::table('gebruikers')
->where('email','=', $email)
->update(['email' => \Input::get('email')],
['username' => \Input::get('gebruikersnaam')],
['password' => \Input::get('wachtwoord')],
['voornaam' => \Input::get('voornaam')],
['achternaam' => \Input::get('achternaam')]);
return redirect('/medewerkermuteren');
}
使用的路线:
Route::put('changeMedewerker/{email}', array('as' => 'veranderMw', 'uses' =>'UserController@changeMedewerker'));
查看表格:
<form method="POST" action="/veranderMedewerker/{{Input::get('zoekmail')}}">
{!! csrf_field() !!}
<input type="hidden" name="_method" value="PUT">
<div class="form-group">
<div class="input-group">
<input type="text" id="zoekmail" name="zoekmail" class="form-control" placeholder="E-mail">
</div>
</div>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" class="form-control" id="email" name="email" placeholder="E-mail">
</div>
<div class="form-group">
<label for="gebruikersnaam">Gebruikersnaam</label>
<input type="text" class="form-control" id="gebruikersnaam" name="username" placeholder="Gebruikersnaam">
</div>
<div class="form-group">
<label for="wachtwoord">Wachtwoord</label>
<input type="password" class="form-control" id="wachtwoord" name="password" placeholder="wachtwoord">
</div>
<div class="form-group">
<label for="voornaam">Voornaam</label>
<input type="text" class="form-control" id="voornaam" name="voornaam" placeholder="Voornaam">
</div>
<div class="form-group">
<label for="achternaam">Achternaam</label>
<input type="text" class="form-control" id="achternaam" name="achternaam" placeholder="Achternaam">
</div>
<div class="row">
<div class="col-sm-4"><button type="submit" name="veranderGebruiker" class="btn btn-success">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Verander</button>
</div>
<div class="col-sm-4"><button type="submit" class="btn btn-warning">Annuleer</button>
</div>
</div>
</form>
【问题讨论】:
-
您是否在控制器顶部使用了用户命名空间?
-
我想知道这一点,在您的表单中,您确实指定了
...action="/veranderMedewerker/{{Input::get('zoekmail')}}"...,而在您的路线中,您有Route::put('changeMedewerker/{email}'...,您确定您没有错过这里的东西吗?为了安全起见,您可以像route('veranderMw', $parameter)这样检索路线,其中$parameter可以是您的{{Input::get('zoekmail')}}- 这种方法确保laravel 在路线不存在的情况下抛出一些东西(或者您以错误的方式配置它)。另外,通过 url 传递电子邮件地址。我不建议这样做。 -
我很抱歉我没有正确翻译它我的错。它现在可以工作了!