小编Zet*_*eth的帖子

Laravel错误-类setEventDispatcher不存在

简洁版本

运行php artisan serve并访问我的主页时,出现此错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

细节

Laravel版本:5.6.39环境:本地操作系统:macOS Mojave 10.14.2

当我npm在另一个项目中使用时出现错误时,它开始了,所以我重新安装了Node (这种方式)

完成此操作后,该项目(正在讨论中)将无法启动。运行时出现此错误php artisan serve

dyld: Library not loaded: /usr/local/lib/libpng16.16.dylib with anything php related
Referenced from: /usr/local/bin/php
Reason: image not found
Run Code Online (Sandbox Code Playgroud)

通过更新和升级brew解决了该错误。

然后,我能够启动项目(php artisan serve)。但是当我访问主页时,显示此错误:

ReflectionException (-1)
Class setEventDispatcher does not exist
Run Code Online (Sandbox Code Playgroud)

如果我遵循堆栈跟踪,那么我可以看到正是此行(来自my homeController)触发了错误:

if( ! Auth::check() ){
  return view( 'pages.home' );
}
Run Code Online (Sandbox Code Playgroud)

如果我将其注释掉,则从另一个Auth使用-module的地方也会发生相同的错误。

这是堆栈跟踪:

setEventDispatcher不存在错误

有谁知道如何解决这个问题?我在Google上找不到任何有希望的结果,-我也不知道为什么会这样...:-/

加法1

我尝试composer clear-cache删除供应商文件夹,然后再执行a …

laravel

6
推荐指数
1
解决办法
1652
查看次数

在AJAX调用之后将'table'类应用于WooCommerce表

WooCommerce桌带有这样的班,开箱即用:shop_table shop_table_responsive cart woocommerce-cart-form__contents。所以没有table-class,这意味着没有漂亮的Bootstrap表。

并且由于仅在绝对必要时才应覆盖WooCommerce模板,因此让我们使用JavaScript来解决它!

我的整个网站都由Vue-div封装,如下所示:

<div id="app">
  ...
  <table class="shop_table shop_table_responsive cart woocommerce-cart-form__contents">
    ...
    ...
  </table>
  ... 
</div>
Run Code Online (Sandbox Code Playgroud)

因此,最初,我编写了以下代码,将table-class 添加到所有表中:

let tableSelectors = [
  '.some-class table',
  '.woocommerce-product-attributes',
  '.woocommerce-cart-form > table'
];
for( let t = 0; t < tableSelectors.length; t++ ){
  let tables = document.querySelectorAll( tableSelectors[t] );
  if( tables ){
    for( let i = 0; i < tables.length; i++ ){
      tables[i].classList.add( 'table' );
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

...将其放在- mounted(){ ... }节中。

可行!到目前为止,一切都很好。 …

javascript jquery woocommerce

6
推荐指数
1
解决办法
176
查看次数

运行brew list服务时查找Brew错误256(对于mariadb)的原因

在我的 Mac 上,当我写:sudo brew services list我得到这个结果:

\n
Name    Status     User File\n------------------------------\ndnsmasq started    root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist\nmariadb error  256 root /Library/LaunchDaemons/homebrew.mxcl.mariadb.plist\nnginx   started    root /Library/LaunchDaemons/homebrew.mxcl.nginx.plist\nphp@7.4 started    root /Library/LaunchDaemons/homebrew.mxcl.php@7.4.plist\n
Run Code Online (Sandbox Code Playgroud)\n

昨天我正在解决一个问题,我得到了这个结果:

\n
Name    Status     User File\n------------------------------\ndnsmasq error  512 root ~/Library/LaunchAgents/homebrew.mxcl.dnsmasq.plist\nmariadb started    root ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist\nnginx   error  256 root ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist\nphp@7.4 started    root ~/Library/LaunchAgents/homebrew.mxcl.php@7.4.plist\n
Run Code Online (Sandbox Code Playgroud)\n

问题1:256和是什么512意思?

\n

问题2:在哪里可以找到错误描述?

\n
\n

解决方案尝试 1:检查/usr/local/var/log

\n

我尝试这样做:

\n
tail -f **/*.log\n
Run Code Online (Sandbox Code Playgroud)\n

但我没有发现任何有用的东西。

\n
\n

解决方案尝试2:重启服务后搜索最新修改

\n

我尝试重新启动服务:sudo brew services restart mariadb

\n …

homebrew mariadb

6
推荐指数
1
解决办法
9168
查看次数

如何将 ExpressJS 节点应用程序部署到 Vercel。收到 404:NOT_FOUND 错误

我可以找到很多很多很多帖子似乎与我有同样的问题,但没有一个有有效的答案(也没有被接受。而且问题要么不准确,要么缺乏信息。所以这里(再次):

我正在开发 ExpressJS、TypeScript 和 Node 应用程序,从这个模板开始:TypeScript-Express-Starter。我尝试将其部署到 Vercel,但不断收到 404 错误:

Vercel 404:NOT_FOUND

图片中的链接:“单击此处了解有关此错误的更多信息”。

我认为这些是正确的 Vercel 设置:

  • 构建命令: npm run build
  • 输出目录: dist
  • 安装命令: npm install

我通过 Nodemon 在本地运行它并且可以工作。有关更多信息,请参阅nodemon.json 。

首要问题:如何让这个节点应用程序(在本地运行)在 Vercel 上运行?


解决方案尝试 1:让一些节点应用程序在 Vercel 上运行

我找到了这篇中等文章:How to Deploy Node Express API to Vercel Serverless Functions,它将精简的 Node 应用程序部署到 Vercel。我尝试按照这些步骤操作,将这些文件添加到我现有的项目中。

那行得通!

有了这些文件,它就成功了!我现在可以看到这个:

API正在运行

在我的临时 Vercel-URL 上:https ://projectname-c3ddpx8f7-mysecretgithubhandle.vercel.app/

注意事项:

  • vercel.json文件将路由从根目录(而不是dist)指向index.js根目录中的文件。我的 Vercel-build-settings(在上面列出)仍然相同。诡异的!
  • index.js 文件也位于根目录中,而不是在编译目录中。 …

node.js express vercel

6
推荐指数
1
解决办法
2788
查看次数

PhpStorm - 转到行尾快捷方式 (IdeaVim)

IdeaVim 有这个错误,您无法通过键入美元符号 ( ) 来到达行尾$。你可以在这里看到它的演示,当我尝试时会发生什么:

IdeaVim 错误演示

这里(这个 gif 太大了,所以我必须链接它)。

由于我使用的是 IdeaVim,我的手指距离箭头键很远,因此Cmd-对于我一天中多次使用的东西来说不是一个选项。

有没有办法为该动作设置一个新的快捷方式,无论换行符和行上的字符如何?

--补充 1 我使用的是 Mac,所以我没有“结束”键。

--附加 2 我想要么是在文件中放入一些内容.ideavimrc,要么是在 PhpStorm 设置中进行修复。但是任何能带我到达我所在的线的末端的东西(不是由于软包装而形成的视线,而是实际的线),都将作为答案。

我是这里唯一有这个问题的人吗?其他人可以复制它吗(通过安装IdeaVim-plugin启用软包装,然后转到很长的一行(占用多个视线)并按$)?

phpstorm ideavim

5
推荐指数
1
解决办法
809
查看次数

Npm install 在每次安装时都会重建 .node-gyp

我每次都会收到此消息npm install

\n\n
> fsevents@1.2.4 install /Users/USERNAME/URL/TO/GULP/FILE/node_modules/fsevents\n> node install\n\n[fsevents] Success: "/Users/USERNAME/URL/TO/GULP/FILE/node_modules/fsevents/lib/binding/Release/node-v57-darwin-x64/fse.node" already installed\nPass --update-binary to reinstall or --build-from-source to recompile\n\n> node-sass@3.13.1 install /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass\n> node scripts/install.js\n\nDownloading binary from https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node\nCannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/darwin-x64-57_binding.node":\n\nHTTP error 404 Not Found\n\nHint: If github.com is not accessible in your location\n      try setting a proxy via HTTP_PROXY, e.g.\n\n      export HTTP_PROXY=http://example.com:1234\n\nor configure npm proxy via\n\n      npm config set proxy http://example.com:8080\n\n> node-sass@3.13.1 postinstall /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-sass\n> node scripts/build.js\n\nBuilding: /usr/local/bin/node /Users/USERNAME/URL/TO/GULP/FILE/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=\ngyp info it worked if it …
Run Code Online (Sandbox Code Playgroud)

fsevents node.js npm node-gyp

5
推荐指数
1
解决办法
2万
查看次数

2020 年使用 JavaScript 检测触摸设备并检测“可以悬停”

TL;DR 版本

如何使用普通 JavaScript 检查用户是否在触摸设备上和/或可以悬停?


详细版

这篇文章提出了无数种不同的方法来解决这个问题。但现在已经是 2020 年了,浏览器和设备上发生了很多事情,所以我想我应该划清界限并开始一个新问题。许多答案没有考虑所有极端情况:

  • 就像手写笔一样
  • 就像苹果的神奇鼠标(显然)模拟触摸事件(我听说过这个,我自己没有体验过)。
  • 就像新的 iPad Pro 一样,它模拟了 Macbook Pro 的 Safari。
  • 就像功能发生变化一样,用户获得/失去“触摸”的能力(就像使用 Chrome 开发者工具启用移动视图时一样)。

我的发现

不要使用window.matchMedia('(any-pointer: XXXXX)').matches

window.matchMedia一些答案表明“新奇” any-pointer: coarse|none|fine。然而,我很幸运,我有一部 OnePlus 5t。因为 matchMedia 在我的设备上的 Firefox 和 Chrome 中都不起作用(错误匹配)。我尝试了 A TON,因为我希望有相同的 CSS 检查,所以我的 JavaScript 和 CSS 相互对应,确保样式和功能匹配。

不要使用 userAgent 匹配

这不是一个好主意,因为每次新浏览器出现时都需要维护 userAgent 列表。因此,这样做并不能保证未来的发展。就像前面提到的 iPad Pro 示例一样。

不要使用人类接触

这篇 Code Burst 文章建议使用人体触摸而不是检测设备触摸。这可能是解决方案的一部分。但是,如果我有一个供触摸用户使用的菜单,那么我必须立即显示该菜单,而不是等待用户触摸屏幕后再显示。

javascript

5
推荐指数
1
解决办法
2654
查看次数

Cypress - 始终将元素聚焦到距屏幕顶部给定的偏移量

当我在 Cypress 中运行测试时,它总是向下滚动到该元素,因此它位于屏幕的最顶部。但我正在为 WordPress 系统编写测试,其中固定栏始终位于屏幕顶部,占据 75 像素(左右)。所以当我的测试运行时我永远看不到发生了什么。

有没有一种方法,我可以为所有测试定义所有元素,以便当它们处于焦点时,它们距离顶部 200px?就像全局常数一样?

代码

cy.get( 'tr[data-slug="cmb2"]' ).should( 'have.class', 'active' );
Run Code Online (Sandbox Code Playgroud)

请参阅这里的问题:

Cypress 管理栏问题


.env解决方案尝试1:在配置文件中设置

如果我可以将它设置在 -file 中,那就太聪明了cypress.json我阅读了Cypress Configuration上的文档,但在那里找不到它。


解决方案尝试 2:使用 CSS 隐藏管理栏

我还可以尝试添加一个样式表以在后端运行 Cypress-tests 时始终加载。但这是解决这个问题的正常方法吗?

即使我这样做了,我也不知道该怎么做。


解决方案尝试3:使用scrollIntoView

我尝试添加scrollIntoView一些选项:

cy.get( 'tr[data-slug="cmb2"]' ).scrollIntoView({ offset: { top: 150, left: 0 } }).should( 'have.class', 'active' );
Run Code Online (Sandbox Code Playgroud)

但当我将鼠标悬停在 div 上时,我仍然看不到它的标题。我也尝试了这里建议的解决方案,看起来有点像它。


解决方案尝试4:将scrollBehavior添加到我的.env文件中

我将其添加到我的.env文件中:

{
   "env": {
      "name": "staging",
      ...
   },
   "viewportWidth": 1100,
   "viewportHeight": 1800, …
Run Code Online (Sandbox Code Playgroud)

javascript cypress

5
推荐指数
2
解决办法
1970
查看次数

django-admin.py无法正常工作

我刚刚发现我的django-admin.py命令出了问题.我查了关于django-admin.py问题的类似SO帖子,但似乎与我的问题没什么关系.我使用Windows Vista(是的,我知道......).我也有我的磁盘上的某个文件夹的Django的许多版本,我切换到我需要使用的版本命令(这类似于在Unix中符号链接),我没有这个问题,而且从来没有出现过问题.

之前我曾多次使用过django-admin.py,但由于一些不明原因,我得到了这个信息(Django 1.1.1):

C:\>django-admin.py startproject some_project
Type 'django-admin.py help' for usage.
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,当我输入django要求我输入的内容时:

C:\>django-admin.py help
Type 'django-admin.py help' for usage.
Run Code Online (Sandbox Code Playgroud)

????

当我切换到Django 1.2.1时,我得到了这个:

C:\>django-admin.py startproject help
Usage: django-admin.py subcommand [options] [args]

Options:
  -v VERBOSITY, --verbosity=VERBOSITY
                        Verbosity level; 0=minimal output, 1=normal output,
                        2=all output
  --settings=SETTINGS   The Python path to a settings module, e.g.
                        "myproject.settings.main". If this isn't provided, the
                        DJANGO_SETTINGS_MODULE environment variable will be
                        used.
  --pythonpath=PYTHONPATH
                        A directory to add to the Python path, e.g.
                        "/home/djangoprojects/myproject".
  --traceback           Print traceback …
Run Code Online (Sandbox Code Playgroud)

django shell command-line django-admin windows-vista

4
推荐指数
1
解决办法
2757
查看次数

PHP语言级别缺少最新(7.3版本为最高)

我正在尝试设置 Xdebug,同时我正在尝试确保所有 PHP 版本和设置都完全正确。

我通过使用 Brew 安装和链接正确的 PHP 版本(我使用的是 Mac),匹配了服务器上的 PHP 版本(7.4)。

因此,在终端中,如果我写,php --version我会得到:版本:7.4.14:

Mac 上的 PHP 版本


我已将 PhpStorm 中的 CLI 解释器设置为指向相同的 PHP 可执行文件:

PhpStorm 中的 PHP 可执行文件


但尽管如此,我只能将PHP版本7.3设置为最高语言级别:

PhpStorm 中缺少 PHP 语言级别


解决方案尝试:

所有这些东西都是在随机裂缝和文章中发现的。他们都没有工作。

  1. 缓存无效并重新启动 PhpStorm(文件 >> 缓存无效并重新启动)。
  2. 在“设置”>>“语言和框架”>>“PHP”>>“Composer”中取消选中“将 IDE 设置与composer.json 同步”。我必须首先插入一条路径才能将其删除。但无论如何它没有做任何事情。
  3. 尝试查看“PHP Latest”插件是否有任何升级,但我看不到任何待处理的更新(v.0.4)。

首要问题

如何获取 PHP 语言级别字段的最新版本(以获得更好的代码提示)?

phpstorm

4
推荐指数
1
解决办法
2191
查看次数