Eu tenho que fazer uma aplicação que realiza as aplicações básicas de um crud para um gerenciamento de tarefas, entrando em login com usuario e senha veria quais as tarefas que tenho para fazer ou querer cadastrar mais.
Nunca usei o yii2 e nem php, estou aprendendo, ao entrar na parte de login, me ocorre este erro :
Invalid Configuration – yii\base\InvalidConfigException
Failed to instantiate component or class "validatePassword".
↵
Caused by: ReflectionException
Dizendo que esse método não está disponivel, mas ele está
(fiz uma grande bagunça de código provavelmente)
vai aqui meu User.php(model):
<?php
namespace app\models;
use Yii;
/**
* This is the model class for table "user".
*
* @property int $id
* @property string $firstName
* @property string $lastName
* @property string $username
* @property string $password
*/
class User extends \yii\db\ActiveRecord
{
public $password;
/**
* {@inheritdoc}
*/
public static function tableName()
{
return 'user';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['firstName', 'lastName', 'username', 'password'], 'required'],
[['firstName'], 'string', 'max' => 15],
[['lastName', 'username', 'password'], 'string', 'max' => 30],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'firstName' => 'First Name',
'lastName' => 'Last Name',
'username' => 'Username',
'password' => 'Password',
];
}
/**
* Validates password
*
* @param string $password password to validate
* @return bool if password provided is valid for current user
*/
public function validatePassword($password)
{
return $this->password === $password;
}
}
<?php
namespace app\models;
use Yii;
use yii\base\Model;
/**
* LoginForm is the model behind the login form.
*
* @property User|null $user This property is read-only.
*
*/
class LoginForm extends Model
{
public $username;
public $password;
public $rememberMe = true;
private $_user = false;
/**
* @return array the validation rules.
*/
public function rules()
{
return [
// username and password are both required
[['username', 'password'], 'required'],
// rememberMe must be a boolean value
['rememberMe', 'boolean'],
// password is validated by validatePassword()
['password', 'validatePassword'],
];
}
}
Login model
<?php
namespace app\controllers;
use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\web\Response;
use yii\filters\VerbFilter;
use app\models\LoginForm;
use app\models\ContactForm;
class SiteController extends Controller
{
/**
* {@inheritdoc}
*/
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'only' => ['logout'],
'rules' => [
[
'actions' => ['logout'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
/**
* {@inheritdoc}
*/
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
],
];
}
/**
* Displays homepage.
*
* @return string
*/
public function actionIndex()
{
return $this->render('index');
}
/**
* Login action.
*
* @return Response|string
*/
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->goHome();
}
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
}
$model->password = '';
return $this->render('login', [
'model' => $model,
]);
}
/**
* Logout action.
*
* @return Response
*/
public function actionLogout()
{
Yii::$app->user->logout();
return $this->goHome();
}
/**
* Displays contact page.
*
* @return Response|string
*/
}
Site controller, alguém poderia me ajudar nos erros que estão acontecendo ?