当前位置: 首页 > 知识库问答 >
问题:

Drupal:count():参数必须是实现可计数的数组或对象

沈健
2023-03-14

警告:count():参数必须是一个数组或一个对象,它在invTranslate_translated_menu_link_alter()中实现了Countable()(第55行来自\站点\所有\模块\自定义\invTranslate\invTranslate.module)。

invTranslate.module是一个自定义模块。

function invTranslate_translated_menu_link_alter(&$item) {
  static $nodeMenu;
  if ($nodeMenu === NULL) {
    if (arg(0) == 'node' && count(arg() == 3 && (arg(1) == 'add' || arg(2) == 'edit'))) {
      $nodeMenu = true;
      ...

第55行是:if(arg(0)=='node'


共有2个答案

姜鸿畴
2023-03-14

arg()返回当前Drupal路径的组件。例如,在路径“admin/structure/types”处查看页面时,arg(0)返回“admin”,arg(1)返回“structure”,arg(2)返回“types”。https://api.drupal.org/api/drupal/includes!bootstrap.inc/function/arg/7.x

在durpal中,节点的路径如下所示

  • /node/add/{node type}/

返回代码:if(arg(0)=='node'

我认为,这个条件应该只适用于我提到的前两条路径。因此,将代码更改为以下内容将导致预期的行为:if(arg(0)=='node'

count()应该只检查路径中是否有足够的组件。

蒋星驰
2023-03-14

对我来说,这似乎是一个简单的打字错误,但是这取决于你的代码应该做什么。为了更好的可读性,我将代码拆分为多行:

if (
    arg(0) == 'node'
    && count(arg() == 3   //the count method takes as param the bool from the row below too
    && (arg(1) == 'add' || arg(2) == 'edit'))
) {

相反,它应该是这样的:

 if (
    arg(0) == 'node'
    && count(arg()) == 3   // add right bracket after arg()
    && (arg(1) == 'add' || arg(2) == 'edit')   // remove right bracket from here
) {
 类似资料:
  • 我在PHPmyadmin中有一些奇怪的错误。 ./libraries/pmd_common.php#405 count()中的警告:参数必须是实现可计数的数组或对象 回溯 ./db_designer.php#102:PMA_getLoadingPage(字符串'db_Name') 如何修复它?

  • 我使用的是Laravel5.3,我的php版本是7.1 当我调用SoftDeletes类时,我得到了那个错误 Builder.php第1231行中的ErrorException:count():参数必须是实现可计数的数组或对象 这是我的模型 这是我的控制器 当我删除count()函数时,也会得到相同的错误 如何解决此错误

  • 我想选择最佳查找结果。我得到了一个错误:在这里,我在下面的文件中显示了HTML表单操作和DB连接,请检查它。错误消息也提到了这一部分。我使用的是PHP7.2,但遇到了一些问题 警告:count():参数必须是在第64行的D:\xammp\htdocs\search\index.php中实现 可计数的数组或对象 警告:在第37行的D:\xammp\htdocs\search\index.php中使用

  • 我面临着奇怪的案子。我在生产环境中面临一个错误,而在开发中它工作正常。 开发: Laravel 5.4.28 PHP 7.0.13 MYSQL 5.7.17 制作:Laravel 5.4.28 PHP 7.2.1 MYSQL 5.7.20 在实现代码中。我用过: 在开发中,它运行良好。但是在生产中,它给我这个错误:Count():参数必须是一个数组或一个在Builder.php中实现可数的对象(第

  • 我有这个代码返回一个错误: 参数必须是实现可数的数组或对象?

  • 我正在处理symfony,收到了这个消息 参数必须是实现可数的数组或对象 此消息仅针对PHP7.2.14显示,不针对PHP7.1.26。 我想在服务器上应用的解决方案,就像这一个phpmyAdmin。 我知道有一些解决方案涉及像这样更改代码。 但我想要一个解决方案,是所有页面,所以在服务器端。 提前谢谢!