Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony] podwojne dane w layout.php
diasek7
post 17.02.2011, 14:30:08
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


witam,
jak zrobic poprawnie i ze standardami cos takiego, ze np jak w jobeecie mam w pliku layout.php wyswietlane pobieranie z bazy przez przez zmienna $sf_contect, a to znowu sie ustawia w pliku indexSuccess.php. a teraz chce dodac sobie menu po prawej i zeby mi tam wyswietalo tylko same nazwy firm. wiem, ze mozna wszystko napisac w tym pliku layout.php, ale tak sie raczej nie robi...

pozdrawiam!
Go to the top of the page
+Quote Post
LBO
post 18.02.2011, 00:38:09
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Odpowiedzią są sloty.

W layoucie:

  1. <?php if (!include_slot('sidebar')) : ?>
  2. Domyslna treść sidebara
  3. <?php endif ?>


a w szablonie akcji:

  1. <?php slot('sidebar') ?>
  2. Nowa treść sidebara.
  3. <?php end_slot() ?>


Go to the top of the page
+Quote Post
diasek7
post 18.02.2011, 22:02:03
Post #3





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


dzieki, sprobowalem jeszcze rozwiazania jak w jobeecie, stosujac include_partial ale mam problem...
robie tak jak w jobeecie (tam przerobilem i mi dzialalo dobrze)

tam jest taki przyklad
  1. //_list.php
  2. <table class="jobs">
  3. <?php foreach ($jobs as $i => $job): ?>
  4. <tr class="<?php echo fmod($i, 2) ? 'even' : 'odd' ?>">
  5. <td class="location">
  6. <?php echo $job->getLocation() ?>
  7. </td>
  8. <td class="position">
  9. <?php echo link_to($job->getPosition(), 'job_show_user', $job) ?>
  10. </td>
  11. <td class="company">
  12. <?php echo $job->getCompany() ?>
  13. </td>
  14. </tr>
  15. <?php endforeach; ?>
  16. </table>

i

  1. <?php include_partial('job/list', array('jobs' => $jobs)) ?>


i wywala mi blad, ze nie mozesz znalezc $jobs (u mnie innej, ale daje na przykladzie) w drugiej linijce pliku _list
gdzie moge szukac bledu? teraz robie sam od poczatku wszystko, wiec moze w jobeecie cos jeszcze dodane bylo? jestem dopiero tak jakby w 4 lekcji patrzac na to a z tym partialami jest w 7.

pozdrawiam
Go to the top of the page
+Quote Post
destroyerr
post 18.02.2011, 22:20:45
Post #4





Grupa: Zarejestrowani
Postów: 879
Pomógł: 189
Dołączył: 14.06.2006
Skąd: Bytom

Ostrzeżenie: (0%)
-----


Cytat
(u mnie innej, ale daje na przykladzie)

Dokładnie tutaj powinien być błąd. Nie przesyłasz odpowiedniej zmiennej, a jakiej to już nie jestem w stanie Ci powiedzieć.
Go to the top of the page
+Quote Post
diasek7
post 18.02.2011, 23:39:44
Post #5





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


probowalem roznymi sposobami i doszedlem do tego, ze w ogole w pliku layout.php nie lapie mi zmiennej....

w pliku showSuccess.php jest cos takiego:

  1. <?php echo $test_news ->getId() ?>


i nawet jak w calym pliku jest tylko to to dziala poprawnie, bo sie wyswietla numer ID.

jednak jak skopiuje tylko to do do pliku layout.php to wywala blad, ze nie zmienna niezdefinowana oraz Call to a member function getId() on a non-object in

no wiec kopiuje z pliku IndexSucces.php
i to pobieranie ID obejmuje

  1. <?php foreach ($test_newss as $i => $test_news): ?>
  2. <?php echo $test_news ->getId() ?>
  3. <?php endforeach; ?>


i wtedy blad ze nie zna zmiennej $test_newss oraz Invalid argument supplied for foreach() in

jesli jednak tos amo robie w pliku IndexSuccess.php drugi raz to dziala normalnie, ale to niezbyt poreczne. jak zrobic, zeby w pliku layout.php lapalo te zmienne?

Ten post edytował diasek7 18.02.2011, 23:44:19
Go to the top of the page
+Quote Post
bela
post 19.02.2011, 00:33:30
Post #6


Administrator PHPedia.pl


Grupa: Developerzy
Postów: 1 102
Pomógł: 2
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


Spróbuj components zamiast partials

http://www.symfony-project.org/jobeet/1_4/...guage_switching


--------------------
Go to the top of the page
+Quote Post
diasek7
post 19.02.2011, 18:56:16
Post #7





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


siedze nad tym od kilku godzin i nic...


mam taki blad jak tutaj http://oldforum.symfony-project.org/index.php/t/5922/ i nic nie pomaga...

zrobilem plik
component.class.php
  1. <?php
  2. class blogComponents extends sfComponents
  3. {
  4. public function executeMenu(sfWebRequest $request)
  5. {
  6. }
  7. }

plik _menu.php
  1. <?php $blog->getTitle() ?>


w layoucie

<?php include_component('blog', 'menu') ?>

i wywala
Kod
The component does not exist: "blog", "menu".


wyglada na to, ze po prostu nie lapie tego componentu. pamietam, ze mialem podobny problem w jobeecie jak sie dodawalo jezyk, ale juz nie pamietam jak to rozwiazalem. wie ktos moze gdzie moze byc blad? albo co raczej trzeba zrobic, zeby zlapal ten komponent? symfony cc robilem, probowalem tez dodawac do pliku view.yml
components:
menu: [menu, default]


ale to nic nie dalo.


edit:
heh zrobilem to w jobeecie i dziala... czego brakuje w poczatkowej aplikacji, tylko czego?

Ten post edytował diasek7 19.02.2011, 18:57:01
Go to the top of the page
+Quote Post
LBO
post 19.02.2011, 19:35:17
Post #8





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Plik z komponentami to components.class.php

Ten post edytował LBO 19.02.2011, 19:36:13
Go to the top of the page
+Quote Post
diasek7
post 19.02.2011, 19:47:20
Post #9





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


ehh na ktorejs stronie byl blad i zle kopiowalem sad.gif pol dnia stracone na takiej glupocie. w dodatku przed chwila sprobowalem zrobic tak jak proponowales za pierwszym razem na slotach i dziala pieknie.
wielkie dzieki za pomoc
Go to the top of the page
+Quote Post
LBO
post 19.02.2011, 20:01:03
Post #10





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Cytat(diasek7 @ 19.02.2011, 19:47:20 ) *
w dodatku przed chwila sprobowalem zrobic tak jak proponowales za pierwszym razem na slotach i dziala pieknie.
wielkie dzieki za pomoc


Możesz połączyć obie rzeczy i ładować komponent do slotu.

Go to the top of the page
+Quote Post
diasek7
post 23.02.2011, 17:19:57
Post #11





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


dzieki wielkie za pomoc, ale mam jeszcze jedno pytanie... jak najprosciej w takim komponencie odwolywac sie do dwoch tabel?
mam to zrobione tak, ze mam tabele CATEGORY i tabele BLOG. zrobilem ten komponent w module BLOG i dziala ok, ale chce wydobyc nazwe kategorii i zaczynaja sie schody. jak sie do niej odwolac? mam oczywiscie w tabeli BLOG category_id, no i moglbym w locie zamieniac na nazwy przez PHP, ale wolalbym sie dowiedziec jak sie odwolywac, bo potem sie to moze mi przydac.

pozdrawiam! smile.gif
Go to the top of the page
+Quote Post
bikerszymek
post 23.02.2011, 18:54:21
Post #12





Grupa: Zarejestrowani
Postów: 91
Pomógł: 13
Dołączył: 23.08.2008

Ostrzeżenie: (0%)
-----


O nic prostrzego chyba nie mogles juz zapytac:
  1. echo $Object->getAliasJakiMaszWSchemaDoKategorii(); // najprawdopodobniej echo $Object->getCategory();


I nie ma to nic wspolnego z komponentami

Ten post edytował bikerszymek 23.02.2011, 18:55:13
Go to the top of the page
+Quote Post
diasek7
post 25.02.2011, 13:12:19
Post #13





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 9.02.2011

Ostrzeżenie: (0%)
-----


hmm no rzeczywiscie to banalne, ale na jakiej to zasadzie dziala? w foreignAlias: mam wpisane Categories. Obiekty nazywaja sie Category i Blog.
teraz wystarczylo, ze zrobilem $blog->getCategory() i pobralo mi nazwe kategorii, a nie uzylem tego aliasu.
A jak w tabeli Category mam jeszcze pole opis? to jak sie do tego dostac? bo domyslnie mi bierze Name. Da sie tak w jednym pliku? musialbym chyba osobny komponent robic i tam zrobic akcje pobierania danych z kategorii?

-----

to jednak tez nie dziala do konca tak jak chcialem.

chce zrobic cos takiego, ze wylistuje mi kazda kategorie a dla niej kazdego newsa, czyli cos takiego:

Kategoria1:
--- news1
--- news2
Kategoria2:
--- news21
---news22

albo po prostu jak najprosciej zrobic w jednym komponencie cos takiego:

<?php foreach ($categories as $category): ?>
<?php echo $category->getCategory() ?>
<?php endforeach; ?>


<?php foreach ($newss as $i => $news): ?>
<?php echo $news->getTitle() ?>
<?php endforeach; ?>

czyli co dodac w akcjach? nie da sie chyba zrobic w jednej akcji odwolan do dwoch roznych tabel....

Ten post edytował diasek7 25.02.2011, 12:51:38
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 02:51