新手问题提醒。。。
好的,目前正在尝试将用户输入的值(质量)从他们希望使用的测量值转换为Mg,然后将其存储在数据库中。
目前我有这个:
public function setUnit($unit)
{
$this->unit = $unit;
return $unit;
}
public function getUnit()
{
return $this->unit;
}
public function setSize($size)
{
$unit = $this->unit;
$this->size = $size = new Mass($size, $unit);
$this->size = $size->toUnit('mg');
return $this;
}
"新质量"函数是TriplePoint创建的用于从度量转换为度量的函数。
https://github.com/triplepoint/php-units-of-measure/
现在,如果我明确地将$unit变量设置为"克"one_answers"公斤",或者无论我选择什么,它都会进行转换,但我显然不想强迫用户只使用一个度量。所以我想创建一个新的变量$unit和setters/getters,然后在newMass函数中接受输入到unit框中的文本。相反,我得到了这个:
Unknown unit of measure ($unit)
我认为这意味着它试图使用"$this->unit"作为变量,而不是文本字段中的文本。
就像我说的,我对这个东西真的很陌生,如果我用这个问题惹恼了任何人,对不起。
一旦我有了这个,我希望创建一个数组供用户选择,但我认为我可以自己管理。
编辑--
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('prod')
->add('product_code')
->add('size')
->add('cost')
->add('discount')
->add('foodcat')
->add('unit', 'choice', array(
'choices' => array(
'g' => 'G',
'kg' => 'Kg',
'mg' => 'Mg',
'oz' => 'Oz',
'lb' => 'Lb',
),
'multiple' => false,
));
}
这是我表格的代码。
因此,我希望$unit的值是从单元选择数组中选择的值。这就是为什么我试图通过使用加载它
public function setSize($size)
{
$unit = $this->unit;
尽管我认为这不是从"公共函数setUnit"中获取集合变量的正确方法
编辑-
如果我这样做:
$unit = 'g';
$this->size = $size = new Mass($size, $unit);
$this->size = $size->toUnit('mg');
return $this;
它非常好用。
所以我真正要问的是…我如何访问setUnit方法中的变量集?
错误消息Unknown unit of measure ($unit)
为您提供了足够的信息。
在这一行:$this->size = $size = new Mass($size, $unit);
中,$unit
未被识别。