• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zdjęcia z bazy danych, twig

Object Storage Arubacloud
0 głosów
309 wizyt
pytanie zadane 7 marca 2017 w PHP przez niezalogowany

Witam mam program, controller wyciąga dane z bazy danych, ładuje je do szablonu twig i wyświetla, twig ma zrobiny taki "bajer" że 

{{ cssjsimg('img/zdjecie.png') }}

tworzy mi ścieżki do js,css i zdjęć np.

{{ cssjsimg('js/skrypt.js') }}
{{ cssjsimg('css/style.css) }}

 

i wszystko działa jak ulał, jednak gdy chce pobrać np. jakiś powiedzmy artykuł z bazy danych, gdzie mam zapisaną ścieżkę do grafiki w taki sposób, to grafika mi się nie wyświetla a tak ma zapisane dosłownie

 {{ cssjsimg('img/zdjecie.png') }}

czy jest jakaś technika która spowoduje że on to przekształci na link? 

komentarz 7 marca 2017 przez Ivan Maniak (60,650 p.)
Sprawdź jaki link dostajesz do przeglądarki (wygenerowaną stronę). PPM -> Wyświetl źródło strony
komentarz 7 marca 2017 przez niezalogowany
no właśnie zwraca dosłowny <img src="{{ cssjsimg('img/zdjecie.png') }}" alt=""> a chciał bym żeby twig mi przemielił to na normalny adres do pliku, jak to robi gdy na sztywno to ustalę.
komentarz 7 marca 2017 przez rafal.budzis Szeryf (85,260 p.)

możesz też podać kod do funkcji 

cssjsimg 

ale moim zdaniem jest to złe podejście. Szablony powinny być jak najprostrze dlatego też logika aplikacji powinna korzystać z tej funkcji. A do szablonu link powinien trafiac juz link w koncowej postaci.

komentarz 7 marca 2017 przez niezalogowany
class TwigServiceProvider extends ServiceProvider
{
    public function provide(array $options=[]){


        $loader=new Twig_Loader_Filesystem($this->config['dir']);
        $twig=new Twig_Environment($loader,array(
           'cache'=>$this->config['cache'],
           'auto_reload'=>true
        ));

        if(!isset($options['urlGenerator']) || false==$options['urlGenerator'] instanceof UrlGenerator){
            throw new \Exception('Twig provide must have urlGenerator');
        }

        $functionUrlGenerator=new Twig_SimpleFunction('url',function($name,$parameters=[]) use ($options){
            return $options['urlGenerator']->generate($name,$parameters);
        });

        $functionAsset=new Twig_SimpleFunction('cssjsimg',function($fileName){
           return '/cssjsimg/'.$fileName;
        });

        $twig->addFunction($functionUrlGenerator);
        $twig->addFunction($functionAsset);

        return $twig;
    }
}
komentarz 7 marca 2017 przez niezalogowany
Zdjęcie jest w środku artykułu który jest ładowany z bazy danych, ogólnie jest podział całej aplikacji według modelu MVC, nie widzę innego rozwiązania ładowania grafiki z bazy danych, która jest gdzieś w środku artykułu.
komentarz 7 marca 2017 przez efiku Szeryf (75,160 p.)
Jeśli trzymasz ścieżkę do obrazka w encji to po prostu prześlij sobie encję do widoku.
img src=" {{ entity.method }}"

z tego co widzę ta Twoja funkcja Twiga zwraca Ci tylko path do  katalogu z obrazkami.

Do takich bajerów zawsze był moduł assetic warto popatrzeć.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 479 wizyt
pytanie zadane 24 lipca 2016 w PHP przez Miko Obywatel (1,480 p.)
0 głosów
3 odpowiedzi 244 wizyt
pytanie zadane 9 kwietnia 2016 w SQL, bazy danych przez GaCeL Dyskutant (7,500 p.)
0 głosów
1 odpowiedź 267 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...