0
我希望能夠將實體定義的常量轉換爲其相關的文本值。 我刪除了大部分與問題無關的代碼,以便更好地進行概述。Symfony 3實體常量到樹枝中的文本
藤實體
/**
* Todo
*
* @ORM\Table(name="todo")
* @ORM\Entity(repositoryClass="TodoBundle\Repository\TodoRepository")
* @ORM\HasLifecycleCallbacks
*/
class Todo
{
const PRIORITY_HIGH = 2;
const PRIORITY_NORMAL = 1;
const PRIORITY_LOW = 0;
/**
* @var int
*
* @Assert\NotBlank(groups={"new", "edit"})
* @Assert\Choice(callback="getPriorities")
*
* @ORM\Column(name="priority", type="integer")
*/
private $priority;
/**
* Set priority
*
* @param integer $priority
*
* @return Todo
*/
public function setPriority($priority)
{
$this->priority = $priority;
return $this;
}
/**
* Get priority
*
* @return int
*/
public function getPriority()
{
return $this->priority;
}
/**
* Get all priorities
*
* @return int
*/
public static function getPriorities()
{
return array(
'High' => self::PRIORITY_HIGH,
'Normal' => self::PRIORITY_NORMAL,
'Low' => self::PRIORITY_LOW
);
}
}
嫩枝概述
{% for todo in todos %}
<tr>
<td>{{ todo.title }}</td>
<td>{{ todo.content }}</td>
<td>{{ todo.priority }}</td> *Change this to output High, Normal or Low according to its set priority*
<td>{{ todo.duedate|date('d/m/Y') }}</td>
<td>
<div class="btn-group" role="group">
<a href="{{ path('todo.show', {'id': todo.id }) }}" class="btn btn-success">View</a>
<a href="{{ path('todo.edit', {'id': todo.id }) }}" class="btn btn-warning">Edit</a>
<a href="{{ path('todo.delete', {'id': todo.id }) }}" class="btn btn-danger">Delete</a>
</div>
</td>
</tr>
{% endfor %}
當使用FormBuilder創建一個表單我能夠調用這段代碼
->add('priority', ChoiceType::class, array(
'choices' => Todo::getPriorities()
))
充滿在這樣
<select id="new_priority" name="new[priority]" class="form-control">
<option value="2">High</option>
<option value="1" selected="selected">Normal</option>
<option value="0">Low</option>
</select>
我希望這是可以做到的或以另一種方式實現文本和值以創建dorpdown場,這將是實現在後面的體育場的翻譯非常有用。
我居然落得這樣做的方式differen和使用twigextensions到迴文本表示轉換。但你的作品也是一個更簡單的印象! –