Sir*_*ius 4 php forms symfony twig
我有一个下拉列表,其中包含实体旁边的实体+图标列表.但是当我提交表单时,我收到了这个错误:
在第38行的src\FLY\BookingsBundle\Resources\views\Post\show.html.twig中呈现模板("通知:数组到字符串转换")期间抛出异常.
CRITICAL - 未捕获的PHP异常Twig_Error_Runtime:"在"C:\ xampp\htdocs\Symfony\src\FLY\BookingsBundle/Resources/views /"中呈现模板("通知:数组到字符串转换")期间抛出异常发布/ 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;
}
}
Run Code Online (Sandbox Code Playgroud)
.
->add('compagny', 'choice', [
'required' => true,
'multiple' => true,
'label' => 'Ex:Emirates airways',
'attr' => [
'class' => 'form-control myDropdown',
'placeholder' => 'Ex:Emirates airways',
]])
Run Code Online (Sandbox Code Playgroud)
.
{% 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 %}
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
Post的$ compagny属性是一个数组,正如您在注释中定义的那样:
/**
* @var array
*
* @ORM\Column(name="compagny", type="array")
*/
Run Code Online (Sandbox Code Playgroud)
阅读学说文档,该数组将在存储到数据库之前被序列化.
你不能直接在树枝上渲染它.
您需要使用for逐个显示数组中的项目.
<ul>
{% for item in entity.compagny %}
<li>{{ item }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)