Kohana Redirect kohana 3.3

Jeysmook

Новичок
Подскажите пожалуйста, как осуществить перенаправление, в kohane 3.3, из любой точки сайта. Перенаправление методом,
PHP:
HTTP::redirect('/');
, выдает ошибку вида: "Kohana_HTTP_Exception [ 302 ]:" и показывает на следующую строку
PHP:
$e = HTTP_Exception::factory($code);
 

Jeysmook

Новичок
флоппик, а перенаправление из вида, как можно организовать?
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Если тебе нужно перенаправление из вида, значит у тебя ошибка в логике и несоотвествие MVC - значит, бизнес-логика попала в отображение, а так не должно быть. Нужно править логические ошибки, иначе они потом выльются у тебя в дополнительные сложности
 

флоппик

promotor fidei
Команда форума
Партнер клуба
Все решения должны приняться в контроллере, в отображение передаются данные из моделей, и и единственная логика, приемлемая в виде - логика отображения, которая решает что показать, как показать. Решения о поведении самого приложения должны быть приняты до этого момента.
 

Здыхлик

Kohaner
Команда форума
Подскажите пожалуйста, как осуществить перенаправление, в kohane 3.3, из любой точки сайта. Перенаправление методом,
PHP:
HTTP::redirect('/');
, выдает ошибку вида: "Kohana_HTTP_Exception [ 302 ]:" и показывает на следующую строку
PHP:
$e = HTTP_Exception::factory($code);
Ну как бы это правильное (ожидаемое) поведение. Редирект в Kohana v3.3 - это и есть HTTP_Exception_302. Поэтому с try/catch надо аккуратнее )
 

php_coder

Новичок
Всем привет.
Кохану только начал изучать. Ситуация такая:
Запилил новости и комменты к ним. При добавлении нового коммента данные из формы проходят валидацию и записываются в бд.
Потом делаю редирект вот так: HTTP::redirect(URL::base(true).'articles/'.$id);
Загружается страница статьи, но комментов нет. Если кликнуть по строке адреса а потом enter, то да, страница перезагрузится уже со всеми комментами.
А нужно чтобы после редиректа отображалась страница со всеми комментами, включая только что добавленный. Подскажите пожалуйста, что я делаю не так и как это победить?
 

Здыхлик

Kohaner
Команда форума
Может, стоит подумать, в каких случаях комменты могут не выводиться? Редирект вроде как и ни при чем, видится мне.
 

jkartem

Новичок
Всем привет.
Кохану только начал изучать. Ситуация такая:
Запилил новости и комменты к ним. При добавлении нового коммента данные из формы проходят валидацию и записываются в бд.
Потом делаю редирект вот так: HTTP::redirect(URL::base(true).'articles/'.$id);
Загружается страница статьи, но комментов нет. Если кликнуть по строке адреса а потом enter, то да, страница перезагрузится уже со всеми комментами.
А нужно чтобы после редиректа отображалась страница со всеми комментами, включая только что добавленный. Подскажите пожалуйста, что я делаю не так и как это победить?
Та-же проблема . Изучаю kohanu на том-же сайте. При редиректе из внутреннего контроллера та-же проблема.
Вы уже разобрались?
 

Здыхлик

Kohaner
Команда форума
Та-же проблема . Изучаю kohanu на том-же сайте. При редиректе из внутреннего контроллера та-же проблема.
Вы уже разобрались?
Что это за сайт такой "чудесный"? Который все умудряются угадать без явно оглашения названия или адреса...

Кстати, про редирект внутреннего контроллера. А с чего вы взяли, что он должен вести к редиректу основного запроса? Если я конечно все правильно понял, так как толком кода никто не привел. Видимо это такое правило на том самом сайте
 

php_coder

Новичок
Та-же проблема . Изучаю kohanu на том-же сайте. При редиректе из внутреннего контроллера та-же проблема.
Вы уже разобрались?
У меня урл в редиректе не соответствовал роуту.
Route::set('articles', '<articles>/<id>-<artname>', ['id' => '[0-9]+'], ['arttime' => '.+'])
->defaults([
'controller' => 'articles',
'action' => 'article'
]);

Было: HTTP::redirect(URL::base(true).'articles/'.$id);
Ессно не работало. А вот так заработало:
HTTP::redirect(URL::base(true).'articles/'.$id.'-'.$article['title']);
 

Здыхлик

Kohaner
Команда форума
У меня урл в редиректе не соответствовал роуту.
Route::set('articles', '<articles>/<id>-<artname>', ['id' => '[0-9]+'], ['arttime' => '.+'])
->defaults([
'controller' => 'articles',
'action' => 'article'
]);

Было: HTTP::redirect(URL::base(true).'articles/'.$id);
Ессно не работало. А вот так заработало:
HTTP::redirect(URL::base(true).'articles/'.$id.'-'.$article['title']);
Позвольте поинтересоваться, как это все решает проблему, описанную Вами же ранее
Всем привет.
Кохану только начал изучать. Ситуация такая:
Запилил новости и комменты к ним. При добавлении нового коммента данные из формы проходят валидацию и записываются в бд.
Потом делаю редирект вот так: HTTP::redirect(URL::base(true).'articles/'.$id);
Загружается страница статьи, но комментов нет. Если кликнуть по строке адреса а потом enter, то да, страница перезагрузится уже со всеми комментами.
А нужно чтобы после редиректа отображалась страница со всеми комментами, включая только что добавленный. Подскажите пожалуйста, что я делаю не так и как это победить?
Я понимаю, показывало бы 404. Но при неправильном УРЛе выводить урезанную (но правильно таргетированную) страницу?!
 

php_coder

Новичок
Перенёс редирект из контроллера комментов в контроллер статей, который вызывал контроллер комментов. Короче всё косяки из-за плохого знания мат. части.
 

AmdY

Пью пиво
Команда форума
Насколько я понимаю,, у него HMVC и бородатая проблема с заголовками http://phpfaq.ru/headers, из-за которых Location не проходил и редиректа не было.
 

Здыхлик

Kohaner
Команда форума
Угу, я также подумал. Теперь вот интересно, что это за сайт, где учат подобным нерабочим вещам )) небось очередной видеокурс "гуру за 21 день"
 

php_coder

Новичок
С сайтом и примерами всё норм. Я ж грю, это я сам накосячил. А с другой стороны это даже хорошо если примеры кода попадаются нерабочие. Это заставляет копать тему в глубь.
 
Сверху