重定向到Laravel中的路由不起作用

时间:2018-07-19 11:18:36

标签: php laravel laravel-5.4

我正在使用 Laravel 5.4.36 应用程序,该应用程序的路由 label 在web.php中定义为

public List<SelectMaschines> Maschinen(SelectMaschines c_Auswahl)
{
   do something that works;
   return lst_masch;
}


public interface I_DO_Service
{
    [OperationContract]
    List<SelectMaschines> Maschinen(SelectMaschines var123);

    [OperationContract]
    SelectReasons Prod2(SelectReasons var231);
}

但是当我尝试使用

从控制功能重定向到路由标签时,
Route::get('/label/', 'LabelController@index');
  

错误:InvalidArgumentException路由[label]未定义。

return redirect()->route('label');
  

错误:FatalErrorException类不是'App \ Http \ Controllers \ Redirect'   找到。

都无法正常工作,有人可以帮助我如何重定向到Laravel中的路线吗?

5 个答案:

答案 0 :(得分:1)

route()重定向到命名路由,因此您需要在routes/web.php中命名路由:

Route::name('label')->get('/label/', 'LabelController@index');

https://laravel.com/docs/5.4/routing

答案 1 :(得分:0)

您可以将路由重写为Route::get('label', 'LabelController@index');,然后致电return redirect()->route('label');

OR

将重定向调用重写为return redirect()->route('/label/');

请尝试这个

答案 2 :(得分:0)

在您的路线/web.php中:

Route::get('/label/', 'LabelController@index')->name('label');

在LabelController中,函数索引的末尾:

return redirect()->route('label');

答案 3 :(得分:0)

所以有很多方法可以做到,但是我更喜欢下面两种重定向方法。

1)没有定义路线名称:

Route::get('/label', 'LabelController@index');
return redirect('/label');

2)通过定义路线名称:

 Route::get('/label', 'LabelController@index')->name('label');
 return redirect()->route('label');

答案 4 :(得分:0)

使用

Route :: get('/ label','LabelController @ index')-> name('label');

代替

Route :: get('/ label /','LabelController @ index');

在标签后删除/。如果您不传递任何参数,则无需在路径末尾使用/