[英]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.