Adam W.

Adam W. senior php
developer, Symfony

Temat: backend - routing collection

ale ten symfony potrafi czasem wkurzyć, dawno tak nie miałem:P

tak jest dobrze:

photo:
class: sfDoctrineRouteCollection
options:
model: Photo
module: photo
prefix_path: /photo
column: id
with_wildcard_routes: true


ale zachciało mi się zmienić nazwę kolumny z id na photo_id


photo:
class: sfDoctrineRouteCollection
options:
model: Photo
module: photo
prefix_path: /photo
column: photo_id
with_wildcard_routes: true


problem jest w innych metodach niż standardowe (new, edit...)
gdy chcę utworzyć metodę addPhotos i przekazać jakiś inny parametr, np. gallery_id wywala 404, że nie ma takiej akcji.

męczył się już ktoś z tym?
czasem jest tak, że o czymś się zapomni w konfiguracji, więc może ja o czymś zapomniałem, ale wydaje mi się, że wszędzie już zmieniłem nazwę tej kolumny. nie wiem co jeszcze może być przyczyną, może błąd w klasie routingu doctrine?

konto usunięte

Temat: backend - routing collection

Powinien Ci się przydać parametr collecion_actions.
http://www.symfony-project.org/reference/1_4/en/10-Rou...

photo:
class: sfDoctrineRouteCollection
options:
model: Photo
module: photo
prefix_path: /photo
column: photo_id
with_wildcard_routes: true
collection_actions:
addPhotos: [get,post] #tutaj jakie chcesz obsługiwać rodzaje reqeust'ów dla tej akcji
Adam W.

Adam W. senior php
developer, Symfony

Temat: backend - routing collection

Przemysław Piechota:
Powinien Ci się przydać parametr collecion_actions.
http://www.symfony-project.org/reference/1_4/en/10-Rou...

photo:
class: sfDoctrineRouteCollection
options:
model: Photo
module: photo
prefix_path: /photo
column: photo_id
with_wildcard_routes: true
collection_actions:
addPhotos: [get,post] #tutaj jakie chcesz obsługiwać rodzaje reqeust'ów dla tej akcji

aha, czyli trzeba tego użyć w przypadku gdy app się wywala bo dałem zły primary key? tzn złą nazwę... no bo jak nazwa była 'id' to było w porządku.
symfony jest zaskakujące:)

dzięki:)

konto usunięte

Temat: backend - routing collection

Adam W.:
aha, czyli trzeba tego użyć w przypadku gdy app się wywala bo dałem zły primary key? tzn złą nazwę... no bo jak nazwa była 'id' to było w porządku.

Nie. Jeżeli dobrze zrozumiałem Twój problem to jest to spowodowane przez sfDoctrineRouteCollection, który ma tam jakieś domyślnie ustalone metody (akcji) dla collecion i object, i Ty musisz mu także ustalić jakie są metody dla danego routingu, bo inaczej po zmienieniu wartości column routing przyjmuje że 'addPhotos' to nie jest nazwa metody(akcji) tylko wartość dla tego pola i próbuje odpalić akcje show.
Adam W.

Adam W. senior php
developer, Symfony

Temat: backend - routing collection

Nie. Jeżeli dobrze zrozumiałem Twój problem to jest to spowodowane przez sfDoctrineRouteCollection, który ma tam jakieś domyślnie ustalone metody (akcji) dla collecion i object, i Ty musisz mu także ustalić jakie są metody dla danego routingu, bo inaczej po zmienieniu wartości column routing przyjmuje że 'addPhotos' to nie jest nazwa metody(akcji) tylko wartość dla tego pola i próbuje odpalić akcje show.

tak, ma ustawione domyślne metody, ale wcześniej jak chciałem utworzyć link do jakieś mojej akcji to pisałem po prostu gallery/addPhotos?id=12 i tworzył link:
gallery/addPhotos/action?id=12

tak powinno się dać, prawda?
teraz linki tworzy dobrze, ale wywala error 404.

konto usunięte

Temat: backend - routing collection

Adam W.:
Nie. Jeżeli dobrze zrozumiałem Twój problem to jest to spowodowane przez sfDoctrineRouteCollection, który ma tam jakieś domyślnie ustalone metody (akcji) dla collecion i object, i Ty musisz mu także ustalić jakie są metody dla danego routingu, bo inaczej po zmienieniu wartości column routing przyjmuje że 'addPhotos' to nie jest nazwa metody(akcji) tylko wartość dla tego pola i próbuje odpalić akcje show.

tak, ma ustawione domyślne metody, ale wcześniej jak chciałem utworzyć link do jakieś mojej akcji to pisałem po prostu gallery/addPhotos?id=12 i tworzył link:
gallery/addPhotos/action?id=12

tak powinno się dać, prawda?
teraz linki tworzy dobrze, ale wywala error 404.

Da się, bo sam też tak robiłem.
hmm, to opisz może bardziej logikę Twojego routingu, modułu i co najważniejsze akcji addPhotos.
Error może być wywalany przez np. przez brak jakiejś metody HTTP dla wpisu w collecion_acitons.

Następna dyskusja:

backend, routing




Wyślij zaproszenie do