为什么来自<a> route &#34;ruta/{{$var}}/edit&#34; and a &#39;action&#39;: &#34;ruta/{{$var}} my final route is: &#34;&#34;ruta/{{$var}}/&#34;ruta/{{$var}}&#34;?

时间:2018-08-12 14:58:27

标签: php laravel routes frameworks laravel-routing

I have a view whit the next code:

<h1>Edicion</h1>
@foreach ($usuarios as $usu)
  <h4>{{$usu->nombre}}</h4>
  <a href="prurequests/{{$usu->slug}}/edit">editar</a>
@endforeach

This route:

Route::resource('/prurequests','PruebasControllers\PrurequestsController'); 

The method edit:

public function edit($slug)
{
  $usuario = Usuario2::where('slug','=',$slug)->firstOrFail();
  return view('vistaspruebas.edit', compact('usuario'));
}

In this route my URL is: /public/prurequests/vaca/edit

此视图“ vistaspruebas.edit”中的代码为:

<form action="prurequests/suma" method="POST">
  @method('PUT')
  @csrf
  <label for="nombre">ingrese nombre</label>
  <input type="text" name="nombre" value="{{$usuario->slug}}">
  <br />
  <button type="submit" name="" value="submit">Actualiza</button>
</form>

代替寻找此路线:“ prurequests / suma” Laravel寻找 / public / prurequests / vaca / prurequests / suma

有人知道为什么在标记和调用其他路由之后,它删除“ edit”并通过我在此处输入的其他路由进行更改?

1 个答案:

答案 0 :(得分:0)

请在您的表单中使用action()辅助方法,如下所示:

<form action="{{ action('Controller@method') }}" method="POST">

或者您可以使用以下路由助手方法:

<form action="{{ route('route_name') }}" method="POST">

如果您要使用给定的路径,也可以使用url()帮助器:

 <form action="{{ url('path_here') }}" method="POST">