小编pat*_*tie的帖子

使用simple_form输入的默认值

我试图做输入的默认值

工作正常:

<%= f.input_field :quantity, default: '1' %> 
Run Code Online (Sandbox Code Playgroud)

但我需要f.input而不是f.input_field

<%= f.input :quantity %> 
Run Code Online (Sandbox Code Playgroud)


怎么解决这个?有没有像f.input_field那样的选择 - :默认?还是有其他有价值的解决方案?

ruby-on-rails erb simple-form ruby-on-rails-4

57
推荐指数
2
解决办法
4万
查看次数

DateDiff为每个时区返回不同的结果

我有PHP DateDiff的问题,我不明白为什么每个时区返回不同的结果,例如在这种情况下布拉格返回0个月,美国返回1个月.

这个差异以及我如何按预期返回1个月(而不是30天,当我加1个月)?

代码欧洲/布拉格:

date_default_timezone_set("Europe/Prague");
$from = new \DateTimeImmutable('2016-09-01');
$to = $from->add(new \DateInterval('P1M'));
var_dump($from);
var_dump($to);
var_dump($from->diff($to)->m);
var_dump($from->diff($to)->d);
Run Code Online (Sandbox Code Playgroud)

结果欧洲/布拉格:

object(DateTimeImmutable)#1 (3) {
  ["date"]=>
  string(26) "2016-09-01 00:00:00.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/Prague"
}
object(DateTimeImmutable)#3 (3) {
  ["date"]=>
  string(26) "2016-10-01 00:00:00.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(13) "Europe/Prague"
}
int(0)
int(30)
Run Code Online (Sandbox Code Playgroud)

-

代码美国/太平洋:

date_default_timezone_set("US/Pacific");
$from = new \DateTimeImmutable('2016-09-01');
$to = $from->add(new \DateInterval('P1M'));
var_dump($from);
var_dump($to);
var_dump($from->diff($to)->m);
var_dump($from->diff($to)->d);
Run Code Online (Sandbox Code Playgroud)

结果美国/太平洋:

object(DateTimeImmutable)#2 (3) {
  ["date"]=>
  string(26) "2016-09-01 00:00:00.000000"
  ["timezone_type"]=>
  int(3)
  ["timezone"]=>
  string(10) "US/Pacific"
}
object(DateTimeImmutable)#4 (3) {
  ["date"]=>
  string(26) …
Run Code Online (Sandbox Code Playgroud)

php datetime datediff date

13
推荐指数
1
解决办法
224
查看次数

将两个表单字段合并为一个实体值

如何将两个单独的字段(必须分开)以一种形式(例如日期和时间)连接到一个实体的有效日期时间,以便在表单发布后保留?

有什么更好的方法?数据转换器?表格活动?表格模型?在持久化之前手动设置所有实体属性?

实体:

<?php namespace Acme\DemoBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="event")
 */
class EventEntity
{

    /**
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    // ...

    /**
     * @ORM\Column(name="date_time", type="datetime", nullable=false)
     */
    protected $datetime;

    public function getId()
    {
        return $this->id;
    }

    // ...

    public function getDateTime()
    {
        return $this->datetime;
    }

    public function setDateTime(\DateTime $datetime)
    {
        $this->datetime = $datetime;
    }

}
Run Code Online (Sandbox Code Playgroud)

FormType:

<?php namespace Acme\DemoBundle\Form\Type;

use JMS\DiExtraBundle\Annotation as DI;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use …
Run Code Online (Sandbox Code Playgroud)

symfony

3
推荐指数
2
解决办法
3906
查看次数

在有区别的表格中

如何从一位特定作者中选择所有项目?它可能这样吗?或者如果我想要很多项目类型和项目包(项目包含很多项目),我该如何编辑实体?

项目

/**
 * @ORM\Table()
 * @ORM\Entity
 * @ORM\InheritanceType("JOINED")
 * @ORM\DiscriminatorColumn(name="discr", type="string")
 * @ORM\DiscriminatorMap({
 * "cd"   = "ItemCD",
 * "dvd"   = "ItemDVD",
 * "pack" = "ItemPack",
 * })
 */
class Item
{

    /**
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

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

}
Run Code Online (Sandbox Code Playgroud)

ItemCD

/**
 * @ORM\Table()
 * @ORM\Entity
 */
class ItemCD extends Item
{

    /**
     * @ORM\ManyToOne(targetEntity="Author", inversedBy="item")
     * @ORM\JoinColumn(name="author_id", referencedColumnName="id")
     */
    private $author;

}
Run Code Online (Sandbox Code Playgroud)

ItemDVD

/**
 * …
Run Code Online (Sandbox Code Playgroud)

php doctrine dql doctrine-orm

2
推荐指数
1
解决办法
1494
查看次数