Как использовать $ this-> Html-> url в контроллере CakePHP? - PullRequest
0 голосов
/ 17 октября 2018

Я использую ajax для получения данных от контроллера.Мне нужно передать URL с контроллера для просмотра с помощью AJAX.

В контроллере, если я использую: $article['url'] = '/articles/edit/4bce...';, когда я нажимаю, он перенаправляется на https://admin-trb-dev-web01.tmh-sd.com/articles/edit/4bce (404 не найдено).

Это страница, которую я не хочу.Страница, которую я хочу перенаправить: https://my-trb-dev-web01.tmh-sd.com/articles/edit/4bce...

Поэтому я хочу использовать $this->Html->url(array('controller' => 'WriteArticles','action' => 'edit','tuid' =>'4bce...')).Он хорошо работает на виде, но в контроллере он не работает.

Я пробовал, как код ниже.Но вывод не является: https://my-trb-dev-web01.tmh-sd.com/articles/edit/4bce...:

    $article['url'] =  Router::url(array(
                'controller' => 'WriteArticles',
                'action' => 'edit',
                'tuid' =>  $article['Article']['tuid']).TRUE);
    $article['url'] = str_replace("\\/", "/", $article['url']);
    return json_encode($article);

Вывод: url: 'https://admin-trb-dev-web01.tmh-sd.com/articles/edit/4bce..' :(

1 Ответ

0 голосов
/ 17 октября 2018

Он хорошо работает на виде, но в контроллере он не работает.

Поскольку вы нарушаете принципы MVC фреймворка.Слои разделены по причине.

Контроллер предоставляет функцию redirect (), которая делает именно то, что вы хотите.Я настоятельно рекомендую вам сделать одно из основных руководств из документации, потому что я думаю, что очевидно, что вы не читали об основах фреймворка: https://book.cakephp.org

Существует такжеглава , которая описывает, как правильно делать ответы в формате JSON.

...