我有一个下拉列表,其中包含实体旁边的实体+图标列表。但是当我提交表单时,我收到了这个错误:
在渲染模板期间抛出了异常 ("注意:数组到字符串的转换")in 第38行的src \ FLY \ BookingsBundle \ Resources \ views \ Post \ show.html.twig。
CRITICAL - 未捕获的PHP异常Twig_Error_Runtime:"异常 在渲染模板期间抛出("注意:数组到 字符串转换")in " C:\ XAMPP \ htdocs中\的Symfony \ SRC \ FLY \ BookingsBundle /资源/视图/后/ show.html.twig" 在第38行。"在C:\ xampp \ htdocs \ Symfony \ app \ cache \ dev \ classes.php行 4795。
class Post
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var array
*
* @ORM\Column(name="compagny", type="array")
*/
private $compagny;
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* Set compagny
*
* @param array $compagny
* @return Post
*/
public function setCompagny($compagny)
{
$this->compagny = $compagny;
return $this;
}
/**
* Get compagny
*
* @return array
*/
public function getCompagny()
{
return $this->compagny;
}
}
->add('compagny', 'choice', [
'required' => true,
'multiple' => true,
'label' => 'Ex:Emirates airways',
'attr' => [
'class' => 'form-control myDropdown',
'placeholder' => 'Ex:Emirates airways',
]])
{% extends '::base.html.twig' %}
{% block body -%}
<h1>Post</h1>
<table class="record_properties">
<tbody>
<tr>
<th>Id</th>
<td>{{ entity.id }}</td>
</tr>
<tr>
<th>Departure</th>
<td>{{ entity.airport }}</td>
</tr>
<tr>
<th>Arrival</th>
<td>{{ entity.airport1 }}</td>
</tr>
<tr>
<th>Departuredate</th>
<td>{{ entity.departuredate|date('Y-m-d H:i:s') }}</td>
</tr>
<tr>
<th>Arrivaldate</th>
<td>{{ entity.arrivaldate|date('Y-m-d H:i:s') }}</td>
</tr>
<tr>
<th>Compagny</th>
<td>{{ entity.compagny }}</td>
</tr>
</tbody>
</table>
<ul class="record_actions">
<li>
<a href="{{ path('post') }}">
Back to the list
</a>
</li>
<li>
<a href="{{ path('post_edit', { 'id': entity.id }) }}">
Edit
</a>
</li>
<li>{{ form(delete_form) }}</li>
</ul>
{% endblock %}
new.html.twig
<div class="col-md-2">
<h4 class="title">Compagny</h4>
<div class="form-group form-group-lg form-group-icon-left">
<i class="fa fa-plane input-icon"></i>
<label>Airlines</label>
{{ form_widget(form.compagny, { 'attr': {'class': 'form-control myDropdown',} }) }}
{{ form_errors(form.compagny) }}
</div>
</div>
答案 0 :(得分:5)
Post的$ compagny属性是一个数组,正如您在注释中定义的那样:
/**
* @var array
*
* @ORM\Column(name="compagny", type="array")
*/
阅读doctrine文档,该数组将在存储到数据库之前被序列化。
你不能直接在树枝上渲染它。
您需要使用for
逐个显示数组中的项目。
<ul>
{% for item in entity.compagny %}
<li>{{ item }}</li>
{% endfor %}
</ul>