我试图做输入的默认值
工作正常:
<%= 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)
我尝试使用标准的html值 - 但在不成功的验证数量被1覆盖 - 不需要的
<%= f.input :quantity, input_html: {value: '1'} %>
Run Code Online (Sandbox Code Playgroud)当我删除值和验证是不成功的数量填充 - 一切都很好
<%= f.input :quantity %>
Run Code Online (Sandbox Code Playgroud)怎么解决这个?有没有像f.input_field那样的选择 - :默认?还是有其他有价值的解决方案?
我有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 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) 如何从一位特定作者中选择所有项目?它可能这样吗?或者如果我想要很多项目类型和项目包(项目包含很多项目),我该如何编辑实体?
项目
/**
* @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 ×2
date ×1
datediff ×1
datetime ×1
doctrine ×1
doctrine-orm ×1
dql ×1
erb ×1
simple-form ×1
symfony ×1