簡體   English   中英

從其他函數訪問變量-Symfony2

[英]Accessing Variables from other functions - Symfony2

新手問題提示...

好的,因此當前嘗試將用戶輸入的值(質量)從他們希望使用的度量轉換為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變量顯式設置為'grams'和'kg'或我選擇的內容,它將進行轉換,但是我不想強迫用戶僅使用一種度量。 因此,我認為創建一個新變量$ unit並使用它的設置器/獲取器,然后輸入到unit框的文本將在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”中獲取設置變量的正確方法

編輯-

如果我做 :

        $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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM