新手问题警报......
好的,所以目前正尝试将用户输入的值(质量)从他们希望使用的测量值转换为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变量设置为'gram'和'kg'或者我选择它将进行转换但是我不想强迫用户显然只使用一个度量。所以我想创建一个新的变量$ unit和setters / getters,然后在newMass函数中接受输入到单位框的文本。相反,我得到了这个:
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;
虽然我认为这不是从“public function setUnit”获取set变量的正确方法
编辑 -
如果我这样做:
$unit = 'g';
$this->size = $size = new Mass($size, $unit);
$this->size = $size->toUnit('mg');
return $this;
完美无缺。
所以我真的要问的是..如何访问setUnit方法中的变量集?
答案 0 :(得分:1)
错误消息Unknown unit of measure ($unit)
为您提供了足够的信息。
在此行中$this->size = $size = new Mass($size, $unit);
,无法识别$unit
。