Я создаю одну форму опроса, для которой я создаю один контроллер вручную по одной веб-ссылке метода, в которой перечислены все вопросы на экране с формой.
, когда я нажимаю кнопку отправки, я вызываю метод add в том жеконтроллер с данными запроса, но выдает ошибку.
<?php
namespace App\Controller;
use App\Controller\AppController;
/**
* Users Controller
*
* @property \App\Model\Table\UsersTable $Users
*
* @method \App\Model\Entity\User[]|\Cake\Datasource\ResultSetInterface
paginate($object = null, array $settings = [])
*/
class SurveyquestionController extends AppController
{
public function beforeFilter($event)
{
parent::beforeFilter($event);
// Allow users to register and logout.
// You should not add the "login" action to allow list. Doing so would
// cause problems with normal functioning of AuthComponent.
$this->Auth->allow(['webink']);
}
/**
* webink method
*
* @return \Cake\Http\Response|void
*/
public function webink()
{
$this->loadModel ('Questionmaster');
$questions = $this->Questionmaster->find('all')->contain(['Questiontype']);
$this->set(compact('questions'));
}
/**
* Add method
*
* @return \Cake\Http\Response|null Redirects on successful add, renders view otherwise.
*/
public function add()
{
print_r($this->request->getData());
die;
$user = $this->Users->newEntity();
if ($this->request->is('post')) {
$user = $this->Users->patchEntity($user, $this->request->getData());
if ($this->Users->save($user)) {
$this->Flash->success(__('The user has been saved.'));
return $this->redirect(['action' => 'login']);
}
$this->Flash->error(__('The user could not be saved. Please, try again.'));
}
$this->set(compact('user'));
}
}
AppController
<?php
/ ** * CakePHP (tm): среда быстрой разработки (https://cakephp.org) * Copyright(c) Cake Software Foundation, Inc. (https://cakefoundation.org) * * Лицензия распространяется по лицензии MIT * Для получения полной информации об авторских правах и лицензиях см. LICENSE.txt * При распространении файлов должно сохраняться указанное выше уведомление об авторских правах. * *@copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * @link https://cakephp.org Проект CakePHP (tm) * @since 0.2.9 * @license https://opensource.org/licenses/mit-license.php Лицензия MIT* / namespace App \ Controller;
использовать Cake \ Controller \ Controller; использовать Cake \ Event \ Event;
/ ** * Application Controller * * Добавить методы всего приложения в классниже, ваш контрольLlers * унаследуют их.* * @link https://book.cakephp.org/3.0/en/controllers.html#the-app-controller * / class AppController расширяет контроллер {
/**
* Initialization hook method.
*
* Use this method to add common initialization code like loading components.
*
* e.g. `$this->loadComponent('Security');`
*
* @return void
*/
public function initialize()
{
parent::initialize();
$this->loadComponent('RequestHandler', [
'enableBeforeRedirect' => false,
]);
$this->loadComponent('Flash');
$this->loadComponent('Csrf');
$this->loadComponent('Auth', [
'authenticate' => [
'Form' => [
'fields' => [
'username' => 'username',
'password' => 'password'
]
]
],
'loginRedirect' => [
'controller' => 'Survey',
'action' => 'index'
],
'logoutRedirect' => [
'controller' => 'users',
'action' => 'login'
],
//use isAuthorized in Controllers
'authorize' => 'Controller',
'unauthorizedRedirect' => $this->referer()
]);
/*
* Enable the following component for recommended CakePHP security settings.
* see https://book.cakephp.org/3.0/en/controllers/components/security.html
*/
//$this->loadComponent('Security');
}
public function beforeFilter($event) {
parent::beforeFilter($event);
// Allow users to register and logout.
$this->Auth->allow(['login', 'logout']);
}
}