Symfony 3调用字符串上的成员函数格式()

Posted

技术标签:

【中文标题】Symfony 3调用字符串上的成员函数格式()【英文标题】:Symfony 3 Call to a member function format() on string 【发布时间】:2017-12-02 03:45:09 【问题描述】:

你好,我是 symfony 的新手。 我用教义创建了一个实体:generate:entity 并返回给我:

<?php

namespace LoginBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Users
 *
 * @ORM\Table(name="users")
 * @ORM\Entity
 */
class Users

    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="SEQUENCE")
     * @ORM\SequenceGenerator(sequenceName="users_id_seq", allocationSize=1, initialValue=1)
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name="name", type="string", length=30, nullable=false)
     */
    private $name;

    /**
     * @var string
     *
     * @ORM\Column(name="lastname", type="string", length=30, nullable=false)
     */
    private $lastname;

    /**
     * @var string
     *
     * @ORM\Column(name="password", type="string", length=200, nullable=false)
     */
    private $password;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="ts", type="datetime", nullable=false)
     */
    private $ts = 'now()';

    /**
     * @var string
     *
     * @ORM\Column(name="mail", type="string", length=150, nullable=false)
     */
    private $mail;



    /**
     * Get id
     *
     * @return integer
     */
    public function getId()
    
        return $this->id;
    

    /**
     * Set name
     *
     * @param string $name
     *
     * @return Users
     */
    public function setName($name)
    
        $this->name = $name;

        return $this;
    

    /**
     * Get name
     *
     * @return string
     */
    public function getName()
    
        return $this->name;
    

    /**
     * Set lastname
     *
     * @param string $lastname
     *
     * @return Users
     */
    public function setLastname($lastname)
    
        $this->lastname = $lastname;

        return $this;
    

    /**
     * Get lastname
     *
     * @return string
     */
    public function getLastname()
    
        return $this->lastname;
    

    /**
     * Set password
     *
     * @param string $password
     *
     * @return Users
     */
    public function setPassword($password)
    
        $this->password = $password;

        return $this;
    

    /**
     * Get password
     *
     * @return string
     */
    public function getPassword()
    
        return $this->password;
    

    /**
     * Set ts
     *
     * @param \DateTime $ts
     *
     * @return Users
     */
    public function setTs($ts)
    
        $this->ts = $ts;

        return $this;
    

    /**
     * Get ts
     *
     * @return \DateTime
     */
    public function getTs()
    
        return $this->ts;
    

    /**
     * Set mail
     *
     * @param string $mail
     *
     * @return Users
     */
    public function setMail($mail)
    
        $this->mail = $mail;

        return $this;
    

    /**
     * Get mail
     *
     * @return string
     */
    public function getMail()
    
        return $this->mail;
    

问题出在带时间戳的那一行

私有 $ts = 'now()';

现在我遇到了这个错误

在字符串上调用成员函数 format()

在 vendor\doctrine\dbal\lib\Doctrine\DBAL\Types\DateTimeType.php(第 53 行)中

public function convertToDatabaseValue($value, AbstractPlatform $platform)            return ($value !== null)            ? $value->format($platform->getDateTimeFormatString()) : null;    

提前致谢

【问题讨论】:

【参考方案1】:

如果要获取当前日期和时间,则需要设置当前日期时间。你需要创建__construct 方法:

public function __construct()

    $this->setTs(new \DateTime());

【讨论】:

感谢您的回答。那私人 $ts = 'now()';是为教义创建的:生成:实体所以我再次运行它它再次设置了那条线。我不知道为什么。我该怎么办? 尝试删除分配= now();。像这样得到它:private $ts;。并在控制台中编写 php app/console 学说:generate:entities YourBundleName.

以上是关于Symfony 3调用字符串上的成员函数格式()的主要内容,如果未能解决你的问题,请参考以下文章

调用字符串上的成员函数 diffInDays() [关闭]

FatalErrorException:错误:在非对象 symfony 上调用成员函数 has()

在 Symfony 中找不到在 null 上调用成员函数 isPasswordValid() 的解决方案

Symfony 4.4 FOS user-bundle api/auth/login 在 null 上调用成员函数 findOneBy()

调用字符串上的成员函数 format()

致命错误:调用字符串上的成员函数 prepare()