Wpis z mikrobloga

#webdev #php #laravel
Mirki jak to sensownie ruszyć - potrzebuje w widoku aby w textarea użytkownik sam sobie definiował kształt np maila używając dostępnych zmiennych które to będą pobierane z bazy - najchętniej używał bym gotowego czystego blade w widokach ale nie wiem czy to tak pójdzie ?
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@larvaexotech: bardzo obrazowo :) chodzi mi o taki własny bbcode w textarea
Do widokuprzekazuje jakieś zmienne o nazwach np $name $id etc, return view('widok', compact('name', ...));
Następnie w textarea mógłbym je wklejać tak jak w zwykłym blade np {{$name}} {{$id}}
Po submicie wynikiem był by czysty text zmienne były by zastąpione przez ich wartości przekazane do widoku
  • Odpowiedz
@larvaexotech: niby to jest jakieś rozwiązanie ale myślałem że da się jakoś do tego wykorzystać styl blade i nie komibnować w str_replace dla kiludziesięciu różnych zmiennych, chciałem tam jeszcze wrzucić pętle foreach co trochę uprzykrza życie bowiem za każdym razem trzeba by pobierać zmienna, sprawdzać czy istnieje etc :)
  • Odpowiedz
Od biedy możesz sobie zapakować wszystkie zmienne np. do arraya $data a potem w widoku w tagu script zdeserializować to na json i opracować javascriptem, tj

kontroler:
return view('xxx' , [ 'data' => [ 'id' => 5 , 'name' => 'test' , 'email' => 'test@email.com' ] ] );

widok:
  • Odpowiedz
@gromusek: Zastanowiłem się nad tym i przecież można to zrobić w blade, nie jest potrzebny sandbox. Tworzysz nową instancję blade i w niej będziesz renderował szablon przed wysłaniem.
  • Odpowiedz
@gromusek: Nie znam laravela więc za dużo nie pomogę. Tak na szybko szukałem i moim zdaniem są gotowe rozwiązania. Blade (chyba) działa tak, że podajesz szablon, on go kompiluje i zapisuje do pliku. Renderowanie polega na zainkludowaniu tego pliku, zmienne będące w zasięgu polecenia include stają się zmiennymi w szablonie (gorzej jest z funkcjami bo chyba wszystkie są dostępne).
W skrócie: musisz wczytać treść z bazy danych zapisać do tymczasowego
  • Odpowiedz