如何在 laravel 的 javascript 代码中设置路由名称

Posted

技术标签:

【中文标题】如何在 laravel 的 javascript 代码中设置路由名称【英文标题】:how can i set route name in javascript code in laravel 【发布时间】:2021-12-16 17:09:39 【问题描述】:

我想在 javascript 代码中分配/设置路由。我有 javascript 方法,它在参数中采用路由名称,我想在路由中分配该参数,如下所示。

function assign_route(route_name)

var url = " route('+route_name+') ";

或如下

var url = " route('old_url') "; url = url.replace('old_url', route_name);

【问题讨论】:

路由名称在 php 代码中生成,该代码在 JavaScript 可以运行之前运行。如果您尝试根据页面加载后计算的某个 JS 变量生成路由名称,则需要通过某种 AJAX 调用从服务器请求路由名称 【参考方案1】:

您可以通过将 name 方法链接到路由定义来指定命名路由:

Route::get('user/profile', function ()  // )->name('profile'); 

您可以为控制器操作指定路由名称:

Route::get('user/profile', 'UserController@showProfile')->name('profile');

【讨论】:

谢谢。我已经在 web.php 文件中设置了路由。我在控制器中有一个方法。我想在 javascript 函数中以不同的路由传递路径提交表单,并在运行时在该 JS 函数中提交表单。 我的 html 表单
@csrf
【参考方案2】:

你可以在你的 javascript 函数中这样尝试:

var uri = " route('routeName', ':variable') ";
uri = uri.replace(':variable', yourvariable);

【讨论】:

先生,它会改变routeName的参数,实际上我想在运行时通过传递不同的路由来改变routeName var uri = " route('routeName',) "; uri = uri.replace('routeName', mynewroute); 试着把你的 roue 放在 routeName 中,routeName 是你的路由形式 web 任何你设置的名字。

以上是关于如何在 laravel 的 javascript 代码中设置路由名称的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.4 - 如何在 javascript 加载之前使 @section 屈服

如何在javascript中使用laravel响应json

如何:在 Laravel 4 中将数据从控制器传递到 JavaScript?

如何使用 Laravel 在 Javascript 中使用 PHP 变量?

如何访问 javascript 中的 laravel .env 变量?

laravel如何路由到javascript上的路由?