我建設有phalconphp一個登錄頁面,當我在按鈕上的標誌點擊帶有或不帶有任何輸入這個錯誤表明:我做了什麼錯在這裏與此SigninController
爾康\的mvc \調度\例外: handler'signin' 上找不到處理'signin'行爲'signin' File = C:\ xampp \ htdocs \ learning-phalcon \ public \ index.php Line = 97#0 [內部函數]: Phalcon \ Mvc \ Dispatcher - > _ throwDispatchException('Action'signin'...', 5)#1 [內部函數]:Phalcon \ Dispatcher-> dispatch()#2 C:\ xampp \ htdocs \ learning-phalcon \ public \ index .PHP(9 7): 爾康\的mvc \應用程序 - >手柄()#3 {}主要
這裏主要的一點是,我不明白爲什麼我需要有一個signinAction時,我沒有打電話的行動在我的代碼中。誰能告訴我我做錯了什麼?
這是我SigninController:
<?php
use \Phalcon\Tag;
class SigninController extends BaseController
{
public function onConstruct()
{
parent::initialize();
}
private function _createUserSession(User $user)
{
$this->session->set('id', $user->id);
$this->session->set('role', $user->role);
$this->response->redirect("dashboard/index");
}
public function indexAction()
{
Tag::setTitle('Signin');
$this->assets->collection('additional')->addCss('css/signin.css');
}
public function doSigninAction()
{
if ($this->security->checkToken() == false) {
$this->flash->error('Invalid CSRF Token');
$this->response->redirect("signin/index");
return;
}
$this->view->disable();
$email = $this->request->getPost('email');
$password = $this->request->getPost('password');
$user = User::findFirstByEmail($email);
if ($user)
{
if ($this->security->checkHash($password, $user->password))
{
$this->_createUserSession($user);
return;
}
}
$this->flash->error('Incorrect Credentials');
$this->response->redirect("signin/index");
}
}
這是我登入索引頁:
{% block content %}
<form class="form-signin" method="post" action="{{ url('signin/doSignin') }}">
<h2 class="form-signin-heading">Please sign in</h2>
<input type="text" name="email" class="form-control" placeholder="Email address" autofocus>
<input type="password" name="password" class="form-control" placeholder="Password">
<input class="btn btn-lg btn-primary btn-block" type="submit" value="Sign in">
<input type="hidden" name="{{ security.getTokenKey() }}" value="{{ security.getToken() }}" />
</form>
{% endblock %}
'處理程序'signin''上未找到'操作'登錄'。既然你在其他地方大寫'Signin',或許你在多個地方使用的''signin''也應該改成'Signin'? – JakeGould
會是這樣嗎?因爲我想我的{{url('signin/doSignin')}}沒有正確連接到控制器。編輯:我改變了案件後,仍然不能。 – Blkc
我不知道。一條建議。 – JakeGould