提问者:小点点

在Laravel刀片中获取未定义的路由错误


我是一个Laravel/Web新手,正在使用一个从别人那里继承来的Laravel应用程序。 在《刀片》中,我看到了表格的两种写法。

  1. {!!form::open(array('url'=>'getdata','
    我认为在第一种情况下,表单以HTML格式开始,路由单独以laravel格式定义,而在第二种情况下,甚至表单都以laravel格式定义。哪一种是首选的,有什么区别?我尝试用第一种格式替换第二种格式,得到一个route[/getdata]not defined错误。laravel版本是6.

共2个答案

匿名用户

您没有实际定义任何名为getdata的路由。

将您的代码route更改为url:

<form action="{{ url('getdata') }}

匿名用户

在第一个示例中:

您正在编写纯html,除了{{route('getdata')}}部分,您可以类似于来读取该部分。 基本上,只有表单的动作(url)是对一个函数的PHP调用,该函数将回显该位置的url,而其余的都是纯html(硬编码文本)。

在第二个示例中,{!!Form::Open(array('url'=>'getdata','您正在使用外观访问将生成html输出的类(类似于第一个示例中的代码),并且您正在向方法Open()传递一个url,该url将放在生成的html中的Action字段中。

使用第二种方法的问题是,传递的不是路由,而是一个字符串。 这样改变它:

{!!form::open(array('url'=>route('getdata'),'

要修复未定义路由的错误,只需在路由末尾调用name()函数即可:

   Route::('your_route_url','controller@method')->name('getdata');