【问题标题】:Symfony 3 Call to a member function format() on stringSymfony 3调用字符串上的成员函数格式()
【发布时间】: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;    }

提前致谢

【问题讨论】:

    标签: php symfony


    【解决方案1】:

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

    public function __construct()
    {
        $this->setTs(new \DateTime());
    }
    

    【讨论】:

    • 感谢您的回答。那私人 $ts = 'now()';是为教义创建的:生成:实体所以我再次运行它它再次设置了那条线。我不知道为什么。我该怎么办?
    • 尝试删除分配= now();。像这样得到它:private $ts;。并在控制台中编写 php app/console 学说:generate:entities YourBundleName.
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 2021-05-16
    • 2016-05-10
    • 2018-08-26
    • 2016-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多