所有的好日子。我目前正在使用cakePHP開發一個聊天應用程序。這將是一個專注於回答問題的聊天應用程序。這意味着用戶將收到基於他/她的問題的自動回覆。我正在使用聊天界面,不需要用戶登錄。一旦用戶發送問題,聊天應用程序將只與數據庫表交互。現在我的問題是如何將問題發送到控制器中將被解析的方法。我試着做下面的視圖文件:將字符串/文本發送到cakePHP中的方法/函數
<!--View/People/index.ctp-->
<h1>This is the chat interface</h1>
<?php $this->Html->charset(); ?>
<p>
<!--This is the text area where the response will be shown-->
<?php
echo $this->Form->create(null);
echo $this->Form->textarea('responseArea', array('readonly' => true, 'placeholder' =>
'***********************************************************************************
WELCOME! I am SANTI. I will be the one to answer your questions regarding the enrollment process
and other information related to it. ***********************************************************************************', 'class' => 'appRespArea'));
echo $this->Form->end();
?>
</p>
<p>
<!--This is the text area where the user will type his/her question-->
<?php
echo $this->Form->create(null, array('type' => 'get', 'controller' => 'people', 'action' => 'send',));
echo $this->Form->textarea('userArea', array('placeholder' => 'Please type your question here', 'class' => 'userTextArea'));
echo $this->Form->end('Send');
?>
</p>
這是控制器:
<!--Controller/PeopleController.php-->
<?php
class PeopleController extends AppController{
public $helpers = array('Form');
public function index(){
}
public function send(){
//parsing logic goes here
}
}
?>
正如你所看到的,我告訴在index.ctp形式來點動作的PeopleController中的send()方法,以便在與數據庫交互之前解析問題。單擊按鈕時出現的問題是,我總是被重定向到/ users/login,這不是我想要發生的事情。我只想讓應用程序指向/ people/send。在這種情況下似乎是什麼問題?我試圖在因特網和文檔中尋找答案,然後對它們進行測試,但目前爲止還沒有解決問題。任何人都可以幫助我嗎?我一直試圖解決這個問題這麼多天。
我不斷收到此錯誤:
Missing Method in UsersController
Error: The action *login* is not defined in controller *UsersController*
Error: Create *UsersController::login()* in file: app\Controller\UsersController.php.
<?php
class UsersController extends AppController {
public function login() {
}
}
爲什麼你在這裏使用GET而不是POST來表單提交?那不是要走的路,正如你所看到的那樣,這個問題在你可能還沒有掌握的方面會變得複雜。 – mark
您是否在應用程序中使用了acl和auth,那麼您必須管理控制器和操作的權限 – Krishna
在將它切換到GET之前,我使用了POST。在使用GET之前,我得到了錯誤,所以我認爲將它切換回POST不會解決問題。 – Jairo