Привет, я пытаюсь сделать разделы сообщений для университетского проекта на веб-сайте потокового видео. У меня есть диспетчер сообщений и модель. Я думал, что я создам элемент для ввода ввода, чтобы я мог повторить это в разделе localhost / evolvids / uploads / watch / section, однако, когда я отправляю сообщение, я получаю ошибку MISSING CONTROLLER.
Это мой код для элемента Posts
<div class="postsform"> <table> <tr> <td> <?php echo $this->Form->create('Posts', array('action'=>'add')); echo $this->Form->input('comment', array('between'=>'<br/>', 'cols'=>'60')); echo $this->Form->input('video.id', array('id'=>'video_id','value' => $uploads['Upload']['id'])); echo $this->Form->input('user.id', array('id'=>'userid','value' => $auth['username'])); echo $this->Form->end(__('Submit', true));?> </td> </tr> </table> </div>
Это мой сценарий диспетчера сообщений
<?php class PostsController extends AppController { var $name = 'Posts'; function index(){ $this->Post->recursive = 0; $this->set('posts', $this->paginate()); } function add(){ if (!empty($this->data)){ $this->Post->create(); if($this->Post->save($this->data)){ $this->Session->setFlash(__('Post saved', true)); } else{ $this->Session->setFlash(__('Post could not be saved. Please try again', true)); } } } function view($id = null){ } } ?>
Модель сообщений
<?php class Post extends AppModel{ public $name = 'Post'; public $belongsTo = array( 'User' => array( 'className' => 'User', 'foreignKey' => 'id' ), 'Uploads' => array( 'className' => 'Uploads', 'foreignKey' => 'upload_id' ) ); } ?>
Контроллер загрузки
<?php class UploadsController extends AppController { var $name = 'Uploads'; public $components = array( 'Session', 'Auth'=>array( 'loginRedirect'=>array('controller'=>'uploads', 'action'=>'add'), 'logoutRedirect'=>array('controller'=>'users', 'action'=>'login'), 'authError'=>"Members Area Only, Please Login…", 'authorize'=>array('Controller') ) ); public function isAuthorized($user) { // regular user can access the file uploads area if (isset($user['role']) && $user['role'] === 'regular') { return true; } // Default deny return false; } function browse ($id = null) { $this->Upload->id = $id; $this->set('uploads', $this->Upload->find('all')); } function watch ($id = null){ $this->Upload->id = $id; $this->set('uploads', $this->Upload->read()); } function add() { if (!empty($this->data)) { $this->Upload->create(); if ($this->uploadFile() && $this->Upload->save($this->data)) { $this->Session->setFlash(__('<p class="uploadflash">The upload has been saved</p>', true)); $this->redirect(array('action' => 'add')); } else { $this->Session->setFlash(__('<p class="uploadflash">The upload could not be saved. Please, try again.</p>', true)); } } } function uploadFile() { $file = $this->request->data['Upload']['file']; if ($file['error'] === UPLOAD_ERR_OK) { $this->Upload->save($this->data); // data must be saved first before renaming to ID $this->(ModelName)->id if (move_uploaded_file($file['tmp_name'], APP.'webroot/files/uploads'.DS.$this->Upload->id.'.mp4')) { return true; } } return false; } }
?> Загрузка модели
<?php class Upload extends AppModel { public $name = 'Upload'; public $hasandBelongstoMany = array( 'User' => array( 'className' => 'User', 'unique' => 'true'), 'Posts' => array( 'className' => 'Posts', 'foreignKey' => 'id', 'associationForeignKey' => 'upload_id', 'associationForeignKey' => 'username', 'unique' => 'true') ); } ?>
В представлении загрузки я вызываю элемент следующим образом
<?php echo $this->element('Posts/add'); ?>
Любые идеи, в которых я ошибаюсь?
Объявление модели в $this->Form->create()
не должно быть множественным:
<?php echo $this->Form->create('Post', array('action'=>'add')); ?>
Это не устраняет недостающую ошибку контроллера, пожалуйста, обновите свой исходный вопрос с содержимым сообщения об ошибке (например, какой контроллер отсутствует).