symfony에서 제기되는 문제
조회수 4754 답변수 3 반응수 3 등록일 2016.07.18 17:42:21

DB에 컬럼을 생성(자료형:time)했는데 싸이트에 현시하자니 쿼리가 작성안되요.time형(HH:MM:SS) 이 실지로는 long형으로 들어온다는데 어디서 잘못된건지 알수 없네요. 부탁드립니다.

작성주신 질문으로는 문제를  파악하기엔 정보가 너무 부족합니다.ㅠ

dev환경이면 app/log/dev.log , prod환경이면 app/log/prod.log 에 작성된 에러로그를 올려주세요.


time형이 실제로는 long 형으로 들어온다는 말이 

long형을 time형으로 컨버팅하여 DB에 저장되어야 한다는 말인가요??

소스코드도 같이 올려주시면 감사하겠습니다~

2016.07.18 23:52:25 반응 이력
답변 고맙습니다. 2개파일(index.html.twig와 contactosoporte.php)을 보냅니다. 도와주세요. - index.html.twig - {% extends '::base.html.twig' %} {% block title %}Phone and email settings{% endblock %} {% block stylesheets %} <link href="{{ asset('vendor/datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.min.css') }}" rel="stylesheet"/> <link href="{{ asset('css/crud.css') }}" rel="stylesheet"/> {% endblock %} {% block body -%} <table width="100%"> <tr> <td width="20%" style="padding-right:50px" valign="top"> </td> <td width="80%"> <div class="row"> <div class="col-md-12"> <div class="box box-solid box-primary"> <div class="box-header with-border"> <h3 class="box-title">Phone and Email Settings</h3> </div> <div class="box-body"> <div class="table-toolbar"> <div class="btn-group"> <a class="btn btn-success tooltips" data-placement="right" data-original-title="Create support Contact" href=" {{ path( 'contactosoporte_new') }} "> Create support Contact <i class="fa fa-plus"></i> </a> </div> </div> <table class="table table-bordered table-striped table-condensed flip-content datatable dt-multiselect export-excel" id="table-contactosoporte" dataexport-title="contactosoporte"> <thead> <tr class="headers"> <th class="no-order entity_id"></th> <th>Name</th> <th>Email</th> <th>Phone</th> <th>available from</th> <th>available to</th> <th class="text-center no-order ctn_acciones">Actions</th> </tr> <tr id="filtrosTabla" class="replace-inputs filter"> <th></th> <th class="string"></th> <th class="string"></th> <th class="string"></th> <th class="string"></th> <th class="string"></th> <th class="not-in-filter"></th> </tr> </thead> <tbody> {% for entity in entities %} <tr> <td> {{ entity.id }} </td> <td>{{ entity.nombre }}</td> <td>{{ entity.email }}</td> <td>{{ entity.telefono }}</td> <td>{{ entity.disponible_de }}</td> <td{{ entity.disponible_para }}></td> <td class="ctn_acciones text-center nowrap"> <a href=" {{ path( 'contactosoporte_show', { 'id': entity.id }) }} " class="btn btn-xs btn-primary tooltips" data-original-title="See detail"> <i class="fa fa-search"></i> </a> <a href=" {{ path( 'contactosoporte_edit', { 'id': entity.id }) }} " class="btn btn-xs btn-success tooltips" data-original-title="Edit"> <i class="fa fa-pencil"></i> </a> <a href="#" onclick="borrar({{ entity.id }})" class="btn btn-xs btn-danger tooltips" data-original-title="Delete"> <i class="fa fa-remove"></i> </a> </td> </tr> {% endfor %} </tbody> </table> </div> </div> </div> </div> </td> {% endblock %} {% block javascripts %} <script src="{{ asset('vendor/datatables/media/js/jquery.dataTables.js') }}"></script> <script src="{{ asset('vendor/datatables-bootstrap3-plugin/media/js/datatables-bootstrap3.js') }}"></script> <script src="{{ asset('vendor/bootbox/bootbox.js') }}"></script> <script src="{{ asset('js/tabla.js') }}"></script> <script src="{{ asset('js/crud.js') }}"></script> {% endblock %} - Entity파일(contactosoporte.php) - <?php namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Validator\Constraints as Assert; /** * ContactoSoporte * * @ORM\Table(name="contacto_soporte") * @ORM\Entity(repositoryClass="AppBundle\Repository\ContactoSoporteRepository") */ class ContactoSoporte { /** * @var int * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var string * * @ORM\Column(name="nombre", type="string", length=255) */ private $nombre; /** * @var string * * @ORM\Column(name="email", type="string", length=255, nullable=true) * @Assert\Email( * message = "{{ value }} no es un email válido.", * checkMX = true * ) */ private $email; /** * @var string * * @ORM\Column(name="telefono", type="bigint", nullable=true) */ private $telefono; /** * @var time * * @ORM\Column(name="disponible_de", type="time") */ private $disponible_de; /** * @var time * * @ORM\Column(name="disponible_para", type="time") */ private $disponible_para; /** * @ORM\ManyToMany(targetEntity="Entrada", mappedBy="contactosSoporte") */ private $entradas; /** * Get id * * @return integer */ public function getId() { return $this->id; } /** * Set nombre * * @param string $nombre * @return ContactoSoporte */ public function setNombre($nombre) { $this->nombre = $nombre; return $this; } /** * Get nombre * * @return string */ public function getNombre() { return $this->nombre; } /** * Set email * * @param string $email * @return ContactoSoporte */ public function setEmail($email) { $this->email = $email; return $this; } /** * Get email * * @return string */ public function getEmail() { return $this->email; } /** * Set telefono * * @param string $telefono * @return ContactoSoporte */ public function setTelefono($telefono) { $this->telefono = $telefono; return $this; } /** * Get telefono * * @return string */ public function getTelefono() { return $this->telefono; } public function __toString(){ return $this->nombre."(".$this->email.")"; } /** * Constructor */ public function __construct() { $this->entradas = new \Doctrine\Common\Collections\ArrayCollection(); } /** * Set disponible_de * * @param time $disponible_de * * @return ContactoSoporte */ public function setDisponible_de($disponible_de) { $this->disponible_de = $disponible_de; return $this; } /** * Get disponible_de * * @return time */ public function getDisponible_de() { return $this->disponible_de; } /** * Set disponible_para * * @param time $disponible_para * * @return ContactoSoporte */ public function setDisponible_para($disponible_para) { $this->disponible_para = $disponible_para; return $this; } /** * Get disponible_para * * @return \DateTime */ public function getDisponible_para() { return $this->disponible_para; } /** * Add entrada * * @param \AppBundle\Entity\Entrada $entrada * * @return ContactoSoporte */ public function addEntrada(\AppBundle\Entity\Entrada $entrada) { $this->entradas[] = $entrada; return $this; } /** * Remove entrada * * @param \AppBundle\Entity\Entrada $entrada */ public function removeEntrada(\AppBundle\Entity\Entrada $entrada) { $this->entradas->removeElement($entrada); } /** * Get entradas * * @return \Doctrine\Common\Collections\Collection */ public function getEntradas() { return $this->entradas; } } android 2016.07.19 02:56:13

문제가 disponible_para 값이 화면에 표시가 안된다는게 맞나요?

우선 위 html 코드중에 > 가 잘못 입력되어 있어요

  1.  <td{{ entity.disponible_para }}></td> 

아래 처럼 변경해 주세요 

  1.  <td>{{ entity.disponible_para }}</td> 


작성해주신 코드에서 위 부분만 수정해서 테스트해보니 정상적으로 화면에 표시가 되긴 하는데.. 

아래는 테스트한 코드입니다.

  1. /**
  2.  * @Route("/")
  3.  */
  4.  public function indexAction()
  5.  {
  6.      $entity = $this->getDoctrine()->getRepository('AppBundle:ContactoSoporte')->findAll();
  7.      return $this->render('AppBundle:Default:index.html.twig', array('entities'=>$entity,));
  8.  }
  1. {% for entity in entities %}
  2. <tr>
  3.  <td> {{ entity.id }} </td>
  4.  <td>{{ entity.nombre }}</td>
  5.  <td>{{ entity.email }}</td>
  6.  <td>{{ entity.telefono }}</td>
  7.  <td>{{ entity.disponible_de|date('H:i:s') }}</td>
  8.  <td>{{ entity.disponible_para|date('H:i:s') }}</td>
  9.  </tr>
  10. {% endfor %}
  11.  


2016.07.19 22:09:35 반응 이력
채택드려요.내가 한거 맞는지 모르겠네요.ㅠㅠ android 2016.07.21 02:42:44
와우 수고하셨습니다~ 문제가 무엇이었나요?? 채택 기능도 있으니 꾹 눌러주세요^^ John.cho 2016.07.21 01:01:57
답변 감사합니다. 이젠 잘 돌아가요. ~_~ android 2016.07.20 23:42:34

글 정말 고맙습니다. 2개의 파일을 보냅니다. 부탁드려요. ~_~


- index.html.twig파일 -

{% extends '::base.html.twig' %}

{% block title %}Phone and email settings{% endblock %}

{% block stylesheets %}

 <link href="{{ asset('vendor/datatables-bootstrap3-plugin/media/css/datatables-bootstrap3.min.css') }}" rel="stylesheet"/>
 <link href="{{ asset('css/crud.css') }}" rel="stylesheet"/>

{% endblock %}

{% block body -%}
<table width="100%">
<tr>
<td width="20%" style="padding-right:50px" valign="top">
</td>

<td width="80%">
<div class="row">
 <div class="col-md-12">
<div class="box box-solid box-primary">
 <div class="box-header with-border">
<h3 class="box-title">Phone and Email Settings</h3>
 </div>
 <div class="box-body">
<div class="table-toolbar">
 <div class="btn-group">
<a class="btn btn-success tooltips" data-placement="right" data-original-title="Create support Contact" href=" {{ path( 'contactosoporte_new') }} ">
 Create support Contact <i class="fa fa-plus"></i>
</a>
 </div>
</div>
<table
 class="table table-bordered table-striped table-condensed flip-content datatable dt-multiselect export-excel"
 id="table-contactosoporte"
 dataexport-title="contactosoporte">
 <thead>
<tr class="headers">
 <th class="no-order entity_id"></th>
<th>Name</th>
<th>Email</th>
<th>Phone</th>
<th>available from</th>
<th>available to</th>
<th class="text-center no-order ctn_acciones">Actions</th>
</tr>
 <tr id="filtrosTabla" class="replace-inputs filter">
 <th></th>
<th class="string"></th>
<th class="string"></th>
<th class="string"></th>
<th class="string"></th>
<th class="string"></th>
<th class="not-in-filter"></th>
</tr>

 </thead>
 <tbody>
{% for entity in entities %}
<tr>
 <td> {{ entity.id }} </td>

 <td>{{ entity.nombre }}</td>

 <td>{{ entity.email }}</td>

 <td>{{ entity.telefono }}</td>

 <td>{{ entity.disponible_de }}</td>

 <td{{ entity.disponible_para }}></td>

<td class="ctn_acciones text-center nowrap">
<a href=" {{ path( 'contactosoporte_show', { 'id': entity.id }) }} "
 class="btn btn-xs btn-primary tooltips" data-original-title="See detail">
 <i class="fa fa-search"></i>
</a>
<a href=" {{ path( 'contactosoporte_edit', { 'id': entity.id }) }} "
 class="btn btn-xs btn-success tooltips" data-original-title="Edit">
 <i class="fa fa-pencil"></i>
</a>
<a href="#" onclick="borrar({{ entity.id }})"
 class="btn btn-xs btn-danger tooltips" data-original-title="Delete">
 <i class="fa fa-remove"></i>
</a>
</td>
</tr>
{% endfor %}
 </tbody>
</table>
 </div>
</div>
 </div>
</div>
</td>
{% endblock %}
{% block javascripts %}

 <script src="{{ asset('vendor/datatables/media/js/jquery.dataTables.js') }}"></script>
 <script src="{{ asset('vendor/datatables-bootstrap3-plugin/media/js/datatables-bootstrap3.js') }}"></script>
 <script src="{{ asset('vendor/bootbox/bootbox.js') }}"></script>
 <script src="{{ asset('js/tabla.js') }}"></script>
 <script src="{{ asset('js/crud.js') }}"></script>

{% endblock %}


- entity파일 -

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * ContactoSoporte
 *
 * @ORM\Table(name="contacto_soporte")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ContactoSoporteRepository")
 */
class ContactoSoporte
{
 /**
 * @var int
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="AUTO")
 */
 private $id;

 /**
 * @var string
 *
 * @ORM\Column(name="nombre", type="string", length=255)
 */
 private $nombre;

 /**
 * @var string
 *
 * @ORM\Column(name="email", type="string", length=255, nullable=true)
 * @Assert\Email(
 * message = "{{ value }} no es un email válido.",
 * checkMX = true
 * )
 */
 private $email;

 /**
 * @var string
 *
 * @ORM\Column(name="telefono", type="bigint", nullable=true)
 */
 private $telefono;

 /**
 * @var time
 *
 * @ORM\Column(name="disponible_de", type="time")
 */
 private $disponible_de;

 /**
 * @var time
 *
 * @ORM\Column(name="disponible_para", type="time")
 */
 private $disponible_para;

/**
 * @ORM\ManyToMany(targetEntity="Entrada", mappedBy="contactosSoporte")
 */
private $entradas;

 /**
 * Get id
 *
 * @return integer
 */
 public function getId()
 {
 return $this->id;
 }

 /**
 * Set nombre
 *
 * @param string $nombre
 * @return ContactoSoporte
 */
 public function setNombre($nombre)
 {
 $this->nombre = $nombre;

 return $this;
 }

 /**
 * Get nombre
 *
 * @return string
 */
 public function getNombre()
 {
 return $this->nombre;
 }

 /**
 * Set email
 *
 * @param string $email
 * @return ContactoSoporte
 */
 public function setEmail($email)
 {
 $this->email = $email;

 return $this;
 }

 /**
 * Get email
 *
 * @return string
 */
 public function getEmail()
 {
 return $this->email;
 }

 /**
 * Set telefono
 *
 * @param string $telefono
 * @return ContactoSoporte
 */
 public function setTelefono($telefono)
 {
 $this->telefono = $telefono;

 return $this;
 }

 /**
 * Get telefono
 *
 * @return string
 */
 public function getTelefono()
 {
 return $this->telefono;
 }

public function __toString(){
return $this->nombre."(".$this->email.")";
}

 /**
 * Constructor
 */
 public function __construct()
 {
 $this->entradas = new \Doctrine\Common\Collections\ArrayCollection();
 }

 /**
 * Set disponible_de
 *
 * @param time $disponible_de
 *
 * @return ContactoSoporte
 */
 public function setDisponible_de($disponible_de)
 {
 $this->disponible_de = $disponible_de;

 return $this;
 }

 /**
 * Get disponible_de
 *
 * @return time
 */
 public function getDisponible_de()
 {
 return $this->disponible_de;
 }

 /**
 * Set disponible_para
 *
 * @param time $disponible_para
 *
 * @return ContactoSoporte
 */
 public function setDisponible_para($disponible_para)
 {
 $this->disponible_para = $disponible_para;

 return $this;
 }

 /**
 * Get disponible_para
 *
 * @return \DateTime
 */
 public function getDisponible_para()
 {
 return $this->disponible_para;
 }

 /**
 * Add entrada
 *
 * @param \AppBundle\Entity\Entrada $entrada
 *
 * @return ContactoSoporte
 */
 public function addEntrada(\AppBundle\Entity\Entrada $entrada)
 {
 $this->entradas[] = $entrada;

 return $this;
 }

 /**
 * Remove entrada
 *
 * @param \AppBundle\Entity\Entrada $entrada
 */
 public function removeEntrada(\AppBundle\Entity\Entrada $entrada)
 {
 $this->entradas->removeElement($entrada);
 }

 /**
 * Get entradas
 *
 * @return \Doctrine\Common\Collections\Collection
 */
 public function getEntradas()
 {
 return $this->entradas;
 }

}

2016.07.19 02:51:45 반응 이력

답변 작성

질문에 적합한 답변을 상세히 작성해 주시기 바랍니다.

답변이 찬성되면 태그평판 +2점이 적립, 반대되면 태그평판 -1점 차감됩니다.

답변이 채택되면 태그평판 +10점이 적립됩니다.

etc 게시판 정보
  • 1.9k
    질문수
  • 118
    아카이브수
  • 46
    채택수
  • 0
    멤버수
etc 질문 통계
최근 30일
답변율
4%
채택율
0%
전체
답변율
2%
채택율
2%
최근에 등록된 질문