В настоящее время я создаю веб-приложение, которое имеет две модели, модели доноров и пожертвований соответственно. Он имеет несколько пользовательских ролей. Когда пользователь штата сначала регистрирует донора, я хочу, чтобы он был перенаправлен в другую форму, которая позволяет ему заполнять детали пожертвования (донор регистрируется после успешного первого пожертвования).CakePHP - контроллер или контроллер нет?
Елки всех, я должен создать контроллер пожертвования, от которого я бы перенаправлять пользователя с помощью:
return $this->redirect(array('controller'=>'donations','action'=>'add'));
Для того чтобы это сработало, это требует от меня, чтобы сохранить идентификатор вновь зарегистрированного донора в сеансе как так:
$this->Session->write('id', $this->Donor->id);
таким образом, пользователь перенаправляется на «пожертвования/добавить» в URL, и это работает прекрасно .. Однако я думаю, что это имеет некоторые недостатки. Я блуждал, должен ли я создать другое действие внутри контроллера-донора под названием «add_donation», которое будет иметь соответствующий «вид». Идея состоит в том, чтобы иметь возможность сформировать URL-адрес такого типа: «donors/add_donation/4» (4 - donor_id!) Этот URL-адрес следует за этой конструкцией: «controller/action/id»
Если кто-то может пролить некоторый свет на лучших практиках или описывать любые предостережения для моего решения (первое, используя сеанс и т. д.), пожалуйста, помогите брату! Я глубоко признателен вам! Заранее спасибо!
Какую версию тортов вы используете и почему вы отметили три из них? –
Его более вероятно получить ответ (больше последователей). Моя текущая версия - 5.4.12, хотя .. извините, если это неприемлемая вещь, но я отчаянный здесь! – LogixMaster
@ user2678538 просто добавьте дополнительную проверку - когда вы используете: '' donors/add_donation/4 '(4 - donor_id!) 'Сравните пройденный' donor_id' с тем, который был в 'Session-> Auth', так что невозможно обмануть донора. : D Это будет возможно, только если пользователь выполнил вход! Или еще лучше, введите идентификатор пользователя из '$ this-> Auth-> user();' –