odczyt z bazy danych

0

Cześć, mam problem z odczytem z tabeli. mam błąd

Could not convert database value to 'array' as an error was triggered by the unserialization: 'unserialize(): Error at offset 0 of 7 bytes'>

    /**
     * @Route("/samochody", name="samochody")
     */
    public function index()
    {
       $em = $this->getDoctrine()->getManager();
$entities = $em->getRepository(samochody::class)->findAll();
$entities= serialize($entities);
return $this->render('samochody/index.html.twig', [
'controller_name' => 'SamochodyController', 'dane' => $entities
]);
0

A nie lepiej nie serializować i dać to do twiga?

0

w twingu mam na prób tylko taki kod

0
{%for samochod in dane%}
            {{samochod.name }}
            {%endfor%}

a tę linijkę z serialize to wygooglałem i dodałem ale i bez tego nie działa

0

A co pokazuje bez serialize?

Zawsze możesz dać

$array = [];
foreach(){
$array[] = $obiekt->getVal();
}
0

BTW polecicie jakiś darmowy kurs symfony najlepiej po polsku ale i angielski może być, bo na uczelni to miałem prawie nic a muszę zrobić projekt

0

po polsku nic nie ma
z ang:

*oficjalna dokumentacja

*symfony casts (tylko pierwszy rozdział za darmo)

0

Po co zwracasz do twiga wartość:

'controller_name' => 'SamochodyController'

?

Zamiast tego, aby dostać cały namespace controllera, możesz użyć:

{{ app.request.attributes.get("_controller") }}

Jeśli chcesz jednak wartość w stylu SamochodyController to lepiej napisz sobie rozszerzenie dla twiga (https://symfony.com/doc/current/templating/twig_extension.html), które będzie zwracać Ci taką wartość:

<?php

namespace App\Twig;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RequestStack;

class ControllerExtension extends \Twig_Extension implements \Twig_Extension_GlobalsInterface
{
    /**
     * @var Request
     */
    protected $request;

    /**
     * AppExtension constructor.
     *
     * @param RequestStack $requestStack
     */
    public function __construct(RequestStack $requestStack)
    {
        $this->request = $requestStack->getCurrentRequest();
    }

    public function getGlobals()
    {
        return [
            'controller_name' => $this->getControllerName(),
        ];
    }

    /**
     * Get current controller name.
     *
     * @return string
     */
    private function getControllerName()
    {
        if (null !== $this->request) {
            $pattern = "#\\\([a-zA-Z]*)::#";
            $matches = [];
            preg_match($pattern, $this->request->get('_controller'), $matches);

            if (!isset($matches[1])) {
                return null;
            }

            return $matches[1];
        }
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0