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

值必须是字符串类型,返回null

沙宣
2023-03-14

拥有以下实体:

共有2个答案

燕和同
2023-03-14

Symfony 5:

public function getSomething(): ?string
    {
        return $this->something;
    }

    public function setSomething(string $something): self
    {
        $this->something= $something;

        return $this;
    }

只要像这样从(string$某物)中删除string,它就会工作,对我来说就是这样

public function getSomething(): ?string
        {
            return $this->something;
        }
    
        public function setSomething($something): self
        {
            $this->something= $something;
    
            return $this;
        }
韶弘壮
2023-03-14

gettergetLat具有返回类型提示string,这意味着只接受实际的字符串值(这也意味着:没有空值!)作为返回值。

您没有显示您实际使用实体的代码,但它基本上归结为对象中每个属性的默认值为null,如果定义不同的话。

看看这个例子:

$address = new Address();

// the following lines will produce an error in your example
// because your return type hint doesn't allow null values

$address->getId();     // returns null
$address->getStreet(); // returns null
$address->getLat();    // returns null

$address->setLat("4.56789");

$address->getLat();   // returns "4.56789"

关于学说的说明:

如果数据库中的值设置正确,则在填充实体后不会遇到此问题(例如,通过$address=$addressRepo-

可能的解决方案:

1.)允许空值作为返回值。在返回类型提示前加上问号,如下所示:

/**
 * @return string|null
 */
public function getLat(): ?string
{
    return $this->lat;
}

但如果您这样做,您的代码必须准备好处理来自这些方法的空值!

2.)在对象中使用正确的数据类型定义默认值:

/**
 * @var string
 *
 * @ORM\Column(name="lat", type="decimal", precision=10, scale=8, nullable=false)
 */
private $lat = "";

您的代码必须准备好将空字符串作为返回值来处理!另外,还可以在构造函数方法中定义默认值。

3.)通过使这些属性成为构造函数的参数,要求它们可用:

public function __constructor(string $lat, string $lng /*, add the other required properties */) {
    $this->lat = $lat;
    $this->lng = $lng;
    // ... additional properties here ...
}

在这种情况下,您必须在使用new地址(/*参数转到这里 */);创建对象时提供这些值。

 类似资料:
  • 我在代码中收到“必须是数组类型,但它解析为字符串”错误。它还说i(在下面的代码中)不能解析为我没有得到的变量。 } 你们能帮我找出问题所在吗?我是Java编码的新手,所以我对这种格式还不完全满意。 非常感谢,朱奈德

  • 问题内容: 如何更改查询以免发生此错误: XML数据类型方法“ alue”必须是字符串文字 T-SQL代码: 问题答案: 对于value方法,不能以这种方式将变量串联为字符串。您需要使用。 因此,您的示例将如下所示:

  • 我正在尝试创建一个程序,该程序将通过GUI读取JSON字符串,然后使用该字符串执行其他功能,在本例中,分解一个数学方程。目前我得到的错误是: “类型错误:字符串索引必须是整数” 我不知道为什么。 我尝试读取的 JSON 如下所示:

  • 问题内容: 我有一个返回字符串的Java实例方法,我正在C ++中通过JNI调用此方法。我写了以下代码: 如何获取字符串并将其转换为const char *? 我的程序在访问冲突为0x00000000的最后一行崩溃。returnString不是NULL。 问题答案: 根据,最后一个参数是的指针。 更改 至 或者更好的是,返回一个 我建立了一个类似的简单示例,到目前为止,代码看起来还不错。 虽然,有

  • 我有一个Java实例方法,它返回一个字符串,我通过C中的JNI调用这个方法。我编写了以下代码: 如何获取字符串并将其转换为常量字符*? 我的程序在最后一行崩溃,访问冲突为0x00000000。returnString不为NULL。

  • 运行此代码时 我得到这个错误 read_bikeins=pdf。PdfFileReader(bikeins)回溯(最近一次呼叫最后一次): 文件“”,第1行,以read\u bikeins=pdf格式。PdfFileReader(比基恩) 文件“C:\Users\Naveen Raj\Anaconda3\lib\site packages\PyPDF2\pdf.py”,第1084行,在init s