Как отобразить таблицы базы данных в веточку с помощью Symfony 4? - PullRequest
0 голосов
/ 15 мая 2018

Я использую реляционную базу данных для извлечения категории для таблицы newproduct Я могу получить таблицу категорий с помощью этих команд

{% for category in category %}
             {{ category.category }}       
        {% endfor %}

Но когда я пытаюсь отобразить таблицу newproduct в базе данных, выдается ошибка

<div class="table-responsive">  
<table class="table table-condensed" border="1" cellpadding="10">
    tbody>
    <tr>
    <th><h4> ID</h4></th>
    <th><h4> category</h4></th>
    <th><h4>  product_code</h4></th>
    <th><h4> product_name<h4></th>
    <th><h4> quantity</h4></th>
    <th><h4> price</h4></th>
    <th><h4> gst </h4></th>
    <th><h4> hsn_code</h4></th>
    <th><h4> product_metric </h4></th>
    <th><h4> product_dimension </h4></th>
    strong text<th><h4> supplier_name</h4></th>


            </tr>

            {%  for newproduct in newproduct %}
            <tr> 
                <td> {{ newproduct.ID}}        </td>
                {% for category in category %}
                <td> {{ category.category }}       </td>
                {% endfor %
                <td> {{ newproduct.product_code}}       </td>
                <td> {{ newproduct.product_name}}       </td>
                <td> {{ newproduct.quantity }}          </td>
                <td> {{ newproduct.price }}             </td>
                <td> {{ newproduct.gst }}               </td>
                <td> {{ newproduct.hsn_code }}           </td>
                <td> {{ newproduct.product_metric }}     </td>
                <td> {{ newproduct.product_dimension }}  </td>
                <td> {{ newproduct.supplier_name }}      </td>


             </tr>
            {% endfor %}

        </tbody>
    </table>
</div>

Ошибка:

Ни свойство "product_code", ни один из методов "product_code ()", "getproduct_code ()" / "isproduct_code ()" / "hasproduct_code ()" или "__call ()" не существуют и не имеют открытого доступа в классе "App \ Entity \ NewProduct".

В сущности

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity(repositoryClass="App\Repository\NewProductRepository")
 */
class NewProduct
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Category", inversedBy="newProducts")
     * @ORM\JoinColumn(nullable=false)
     */
    private $category;

    /**
     * @ORM\Column(type="string", length=50)
     */
    private $product_code;

    /**
     * @ORM\Column(type="string", length=50)
     */
    private $product_name;

    /**
     * @ORM\Column(type="integer")
     */
    private $quantity;

    /**
     * @ORM\Column(type="float")
     */
    private $price;

    /**
     * @ORM\Column(type="float")
     */
    private $gst;

    /**
     * @ORM\Column(type="integer")
     */
    private $hsn_code;

    /**
     * @ORM\Column(type="integer")
     */
    private $product_metric;

    /**
     * @ORM\Column(type="integer", nullable=true)
     */
    private $product_dimension;

    /**
     * @ORM\Column(type="string", length=50)
     */
    private $supplier_name;

    public function getId()
    {
        return $this->id;
    }

    public function getCategory(): ?Category
    {
        return $this->category;
    }

    public function setCategory(?Category $category): self
    {
        $this->category = $category;

        return $this;
    }

    public function getProductCode(): ?string
    {
        return $this->product_code;
    }

    public function setProductCode(string $product_code): self
    {
        $this->product_code = $product_code;

        return $this;
    }

    public function getProductName(): ?string
    {
        return $this->product_name;
    }

    public function setProductName(string $product_name): self
    {
        $this->product_name = $product_name;

        return $this;
    }

    public function getQuantity(): ?int
    {
        return $this->quantity;
    }

    public function setQuantity(int $quantity): self
    {
        $this->quantity = $quantity;

        return $this;
    }

    public function getPrice(): ?float
    {
        return $this->price;
    }

    public function setPrice(float $price): self
    {
        $this->price = $price;

        return $this;
    }

    public function getGst(): ?float
    {
        return $this->gst;
    }

    public function setGst(float $gst): self
    {
        $this->gst = $gst;

        return $this;
    }

    public function getHsnCode(): ?int
    {
        return $this->hsn_code;
    }

    public function setHsnCode(int $hsn_code): self
    {
        $this->hsn_code = $hsn_code;

        return $this;
    }

    public function getProductMetric(): ?int
    {
        return $this->product_metric;
    }

    public function setProductMetric(int $product_metric): self
    {
        $this->product_metric = $product_metric;

        return $this;
    }

    public function getProductDimension(): ?int
    {
        return $this->product_dimension;
    }

    public function setProductDimension(?int $product_dimension): self
    {
        $this->product_dimension = $product_dimension;

        return $this;
    }

    public function getSupplierName(): ?string
    {
        return $this->supplier_name;
    }

    public function setSupplierName(string $supplier_name): self
    {
        $this->supplier_name = $supplier_name;

        return $this;
    }
    public function __toString()
   {
    return (string) $this->getCategory();
   }
}

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Чтобы получить категорию (реляционная база данных) в той же таблице, используйте это

        {%  for newproduct in newproduct %}
        <tr> 
            <td> {{ newproduct.ID}}                 </td>
            <td> {{ newproduct.category}}           </td>//Relational database
            <td> {{ newproduct.product_code}}       </td>
            <td> {{ newproduct.product_name}}       </td>
            <td> {{ newproduct.quantity }}          </td>
            <td> {{ newproduct.price }}             </td>
            <td> {{ newproduct.gst }}               </td>
            <td> {{ newproduct.hsn_code }}           </td>
            <td> {{ newproduct.product_metric }}     </td>
            <td> {{ newproduct.product_dimension }}  </td>
            <td> {{ newproduct.supplier_name }}      </td>


         </tr>
        {% endfor %}
0 голосов
/ 15 мая 2018

Измените шаблон веточки с {{ newproduct.product_code}} на {{ newproduct.getProductCode()}} и проделайте то же самое со всеми переменными, поскольку вы не можете получить доступ к закрытым переменным извне сущности.

...