Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal布尔单选按钮/复选框选择N/A选项_Php_Drupal_Drupal 7_Radio Button_Migration - Fatal编程技术网

Php Drupal布尔单选按钮/复选框选择N/A选项

Php Drupal布尔单选按钮/复选框选择N/A选项,php,drupal,drupal-7,radio-button,migration,Php,Drupal,Drupal 7,Radio Button,Migration,我正在处理一个需要从布尔复选框/单选按钮中选择N/a选项的迁移类。我已将字段配置为1==True和0==No。但是,每当源代码中没有指定任何内容时,我想选择N/A选项 我在prepareRow函数中调用的函数如下所示: protected function utcYesNoBoolean($value) { $upper = strtoupper($value); switch ($upper){ case "YES": return 1; break;

我正在处理一个需要从布尔复选框/单选按钮中选择N/a选项的迁移类。我已将字段配置为
1==True
0==No
。但是,每当源代码中没有指定任何内容时,我想选择
N/A
选项

我在
prepareRow
函数中调用的函数如下所示:

protected function utcYesNoBoolean($value) {
  $upper = strtoupper($value);

  switch ($upper){
    case "YES":
      return 1;
      break;

    case "NO":
      return 0;
      break;

    //Not filled in so set to NA
    default:
      return NULL;
      break;
  }
}
因此,如果源代码如下所示:

protected function utcYesNoBoolean($value) {
  $upper = strtoupper($value);

  switch ($upper){
    case "YES":
      return 1;
      break;

    case "NO":
      return 0;
      break;

    //Not filled in so set to NA
    default:
      return NULL;
      break;
  }
}

  • id 1:result=>1=>select Yes
  • ID2:result=>0=>selectno
  • id 3:结果=>NULL?=>选择不适用
我应该这样做并返回一个
NULL
,忽略该字段未在UI中选择的事实,还是有办法选择
N/a
选项?要选择
N/A
选项,我应该返回什么值?我尝试返回
-1
NULL
N/A
,但没有成功

或者是否有一个选项可以使用migrate字段映射将字段的默认值设置为
N/A


注意:如果有必要的话,可以在Drupal7上使用CommerceKickstart。还请注意,需要在migrate类中使用PHP代码设置参数。

与此同时,我自己解决了这个问题。将产品上的字段从
No
更新为
N/a
时。保存并再次编辑,您将看到不再选择任何内容

因此,在数据库中,这也将导致一个空的/已删除的字段/记录。因此,无需将其设置为任何其他值,如
Yes
no
N/A
按钮用于删除该值,以防您不希望该值继续存在

感谢所有读过这个问题的人,如果早点检查Drupal数据库,我本可以早点发现这个问题。我希望这个答案将来对其他人有用