#php #model-view-controller #symfony1 #symfony-1.4
#php #model-view-controller #symfony1 #symfony-1.4
Вопрос:
У меня возникла проблема с использованием объекта с методом url_for, я думал, что идея заключалась в том, что какие-либо требуемые параметры были найдены автоматически?
The "/publish/:id/:token" route has some missing mandatory parameters (:id, :token).
routing.yml
post_publish:
url: /publish/:id/:token
options:
model: HookupPost
type: object
method_for_criteria: doSelectOneInactive
param: { module: post, action: show }
requirements:
id: d
token: w
sf_method: [GET]
newSuccess.php
<?php echo public_path(url_for("@post_publish", $post), true); ?>
Где $post передается действием и содержит недавно созданный post!
Кто-нибудь знает, почему возникает эта ошибка? Я что-то неправильно понял?
Спасибо,
Ответ №1:
Вам не хватает объявления sfDoctrineRoute:
post_publish:
url: /publish/:id/:token
class: sfDoctrineRoute
options:
model: HookupPost
type: object
method_for_criteria: doSelectOneInactive
param: { module: post, action: show }
requirements:
id: d
token: w
sf_method: [GET]
И тогда вы можете сделать:
<?php echo public_path(url_for("post_publish", $post), true); ?>
Ссылка: http://www.symfony-project.org/jobeet/1_4/Doctrine/en/05
Ответ №2:
Попробуйте:
<?php echo public_path(url_for("post_publish",
array( 'id' => $post->id, 'token' => $post->token )), true); ?>
Или что-то подобное, в зависимости от вашего Post
класса.
Комментарии:
1. Это как бы противоречит смыслу передачи объекта, поэтому я могу изменить маршрут позже
2. Основной целью было удаление @ out. : D