Могу ли я перенаправить из представления в cakephp - PullRequest
1 голос
/ 06 апреля 2011

У меня есть кнопка на моей домашней странице, которая ведет на страницу регистрации / входа.Страница регистрации / входа - это просто страница в views / pages / signup.ctp, поэтому с ней не связано действие.

Я хочу, чтобы, если пользователь уже вошел в систему, когда он 'Находясь на главной странице, они нажимают кнопку «Моя регистрация», вместо того чтобы перенаправить их на страницу регистрации / входа, они перенаправляют их на другое действие.Но поскольку на странице входа / входа нет действия, я не знаю, где выполнить проверку и перенаправление.Есть ли способ проверить, вошли ли люди в представление signup.ctp?и перенаправить их оттуда?

Это, вероятно, очень далеко от реальности, но я очень растерялся.Любая помощь приветствуется.Приветствия:)

Ответы [ 5 ]

0 голосов
/ 08 июля 2017

Сделайте это в вашем ExampleController для конкретного представления, например "example.ctp"

public function example(){
   if ($session.read('Auth.User')) {
       this->redirect(['action' => 'exampleview']);
   }
}

Надеюсь, что это решит вашу цель.

0 голосов
/ 25 октября 2014

Вы также можете использовать

header ("Location: ".$this->Html->url(array('controller'=>'Home','action'=>'index')));

для использования контроллера и действия в cakephp

0 голосов
/ 07 апреля 2011

Вы можете поместить другую ссылку для кнопки на домашней странице ..

т.е. в зависимости от статуса пользователя (вошел в систему или нет), вы будете выбирать, какую ссылку связать с кнопкой ..

Я не знаю, используете ли вы компонент Auth.
если это так, в шаблоне вашей домашней страницы вы можете сделать что-то вроде:

<?php
  if ($session.read('Auth.User')) {
    // the user is logged in
    // put the link to the other action
  }
  else {
    // the user isn't logged in
    // put the link to the signup/login page
  }
?>

Таким образом, вам не нужно перенаправлять пользователя ...

надеюсь, это поможет ..

удачи в развитии ...

0 голосов
/ 25 октября 2014

Вы можете использовать

header ("Location: ".$this->Html->url('/'));
0 голосов
/ 06 апреля 2011

Создайте действие для регистрации ... и вы можете выполнить проверку там. Я не думаю, что это хорошая практика - создавать перенаправления в представлениях. Вы можете поместить действие в контроллер домашней страницы, например ...

Даже если было бы неплохо поместить перенаправление в представление, вам нужно будет установить переменную (в действии), чтобы проверить, вошел ли пользователь в систему или нет. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...