从其他函数访问变量 - Symfony2

时间:2014-03-05 13:57:43

标签: php symfony doctrine-orm

新手问题警报......

好的,所以目前正尝试将用户输入的值(质量)从他们希望使用的测量值转换为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方法中的变量集?

1 个答案:

答案 0 :(得分:1)

错误消息Unknown unit of measure ($unit)为您提供了足够的信息。

在此行中$this->size = $size = new Mass($size, $unit);,无法识别$unit