Laravel link 没有定义的路线就无法执行操作

Laravel link to action not working without a defined route

我可能误解了 link 路由助手,但如果没有在我的路由文件中设置路由,它就无法工作。

{{ link_to_action('UserController@loginWithFacebook', 'Facebook Login in', $parameters = array(), $attributes = array('class' => 'btn btn-primary fb-login-btn')); }}

然后我 link 访问 URI 时的旧路由是:

    Route::get('loginuser2', array('uses' => 'UserController@loginWithFacebook'));

不过,我认为link_to_action是直接调用方法。在我的路由文件中删除上面的 link 之后,我得到了控制器方法未定义的路由错误。

有什么办法可以避免这种情况吗?

如果路由本身不存在,您将无法 link 执行操作。必须定义路由。

所以你需要保持路线定义,然后link_to_action()将继续工作。在后端,它正在查看您的路线以找到与该操作相同的路线 - 并使用该 URL.

没有办法避免。

link_to_action 用于 link 控制器。你应该使用

link_to生成htmllink

echo link_to('foo/bar', $title, $attributes = array(), $secure = null);