【问题标题】:Can't open new window when click button单击按钮时无法打开新窗口
【发布时间】:2020-01-24 08:20:57
【问题描述】:

我需要使用 onclick openNewWindow 重定向到新窗口。我只是路由到我的控制器,但似乎它给出了错误“Route [sla.slaCategoryTreeListScreen] not defined”

这是我的控制器代码。

 public function slaCategoryTreeListScreen() {



        return view('sla.slm.SLACategoryCheckBoxList');
    }


我对点击部分的看法

<a class="btn btn-sm btn-default pull-right" type="button" title="Search Category" onclick="openNewWindow('{{ route('sla.slaCategoryTreeListScreen') }}" >

我的路线

Route::group(['prefix' => 'sla'], function () {


   Route::resource('sla', 'SlaController');
  //Route::get('sla','SlaController@slaCategoryTreeListScreen')->name('SlaController.slaCategoryTreeListScreen');

  // Route::get('sla','SlaController@SlaCategoryTreeListScreen')->name('sla.SlaCategoryTreeListScreen');

   Route::get('sla/getbranch/{id}','SlaController@getBranchAjax')->name('sla.getBranchAjax');
    Route::get('sla/getBranchAjax2/{cuid}/{stid?}','SlaController@getBranchAjax2')->name('sla.getBranchAjax2');
});

关于正在尝试的路线的评论部分根本没有修复..抱歉我的英语不好,希望对您有所帮助。

【问题讨论】:

  • 在路由文件中用名称“sla.slaCategoryTreeListScreen”注释路由。然后你面临哪个错误?
  • 在控制器中像这样使用redirect()-&gt;away('REDIRECT_URL')
  • 给出的错误是“Route [sla.sla.slaCategoryTreeListScreen] not defined”...我已经取消注释部分,但新的错误是 Route sla.index not defined
  • 你需要调试代码,比如当你点击锚链接然后调用名为“sla.slaCategoryTreeListScreen”的路由?

标签: javascript php html laravel


【解决方案1】:

首先:Route::resource() 仅通过预定义的默认数组 ('index', 'create', 'store', 'show', 'edit', 'update', 'destroy') 注册路由。
不会自动从您的控制器注册任何方法。
还要确保您的控制器具有所有这些路由的方法或指定路由的子集。查看更多信息:https://laravel.com/docs/6.x/controllers#restful-partial-resource-routes

第二:您的 a-tag 似乎格式不正确。 JavaScript 方法以(' 打开,但永远不会再次关闭。所以应该是这样的:

onclick="openNewWindow('{{ route('sla.slaCategoryTreeListScreen') }}')"

要简单地在新标签页中打开 URL,您可以使用它(使用 target="_blank"):

<a href="{{ route('sla.slaCategoryTreeListScreen') }}" target="_blank" class="btn btn-sm btn-default pull-right">Search Category</a>

另外:确保存在名为sla.slaCategoryTreeListScreen 的路由。最简单的方法是通过在终端中从项目的根目录运行命令php artisan route:list 列出所有可用的路由。

【讨论】:

  • 谢谢....只需从我的控制台检查我在 js 中遇到语法错误.....我刚刚从我的网络路由中进行了更正,如下所示“Route::get('sla/ slaCategoryTreeListScreen','SlaController@slaCategoryTreeListScreen')->name('sla.slaCategoryTreeListScreen');"
【解决方案2】:

在你的视图文件中替换它

&lt;a class="btn btn-sm btn-default pull-right" type="button" title="Search Category" onclick="window.open('{{ route('sla.SlaCategoryTreeListScreen') }} ', '_blank')" &gt;

【讨论】:

  • 取消注释这条路线Route::get('sla','SlaController@slaCategoryTreeListScreen')-&gt;name('SlaController.slaCategoryTreeListScreen');
猜你喜欢
  • 2015-09-09
  • 1970-01-01
  • 2019-04-12
  • 2011-02-09
  • 1970-01-01
  • 1970-01-01
  • 2012-08-31
  • 2018-12-18
  • 1970-01-01
相关资源
最近更新 更多