Как добавить запись в таблицу в yii2?
Я начинающий в php, отправляю приглашение на почту с помощью хэша. Перед отправкой необходимо заполнить поля в таблице. Но я не понимаю почему не вставляются данные и возвращается в false. Вот код: Что нужно сделать в моделе чтобы он исправно работал?
model/Projects
namespace backend\models;
use Yii;
use yii\behaviors\BlameableBehavior;
use yii\behaviors\TimestampBehavior;
use yii\data\ActiveDataProvider;
/**
* This is the model class for table "projects".
*
* @property int $id
* @property string|null $name
* @property string|null $description
* @property string|null $status
* @property string|null $created_at
* @property string|null $updated_at
* @property int|null $created_by
* @property int|null $updated_by
*
*/
class Projects extends \yii\db\ActiveRecord
{
public $email;
public $hash;
/**
* {@inheritdoc}
*/
public static function tableName()
{
return '{{%projects}}';
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['hash'], 'string'],
[['email'], 'email'],
[['created_at', 'updated_at'], 'integer'],
[['created_by', 'updated_by'], 'integer'],
[['name', 'status'], 'string', 'max' => 45],
[['description'], 'string', 'max' => 255],
];
}
public function behaviors()
{
return [ BlameableBehavior::class,
TimestampBehavior::class
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'name' => Yii::t('app', 'Name'),
'description' => Yii::t('app', 'Description'),
'status' => Yii::t('app', 'Status'),
'created_at' => Yii::t('app', 'Created At'),
'updated_at' => Yii::t('app', 'Updated At'),
'created_by' => Yii::t('app', 'Created By'),
'updated_by' => Yii::t('app', 'Updated By'),
];
}
public function getTasks()
{
/*return $this->hasMany(Tasks::class, ['project_id' => 'id']);*/
$query = Tasks::find();
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
$query->where(['project_id'=>$this->id]);
return $dataProvider;
}
public function getProjects()
{
return Projects::find()->all();
}
public function setInvite()
{
$this->hash=substr(md5(time()), 0, 16);
$invite = new Invitations();
$invite->hash=$this->hash;
$invite->save();
return $invite;
}
public static array $statuses = [
'0'=>"Идея",
'1'=>"Разработка",
'2'=>"Готов",
];
}
Функция вызывается в actionEmail();
controller/Projects
public function actionEmail()
{
$email = Yii::$app->request->get('Projects')['email'];
$invite= new Projects();
var_dump($invite->setInvite());
if (Yii::$app->mailer->compose()
->setFrom(Yii::$app->user->identity->email)
->setTo($email)
->setSubject('Проверьте содержимое письма')
->setTextBody('http://127.0.0.1/'.$invite->hash)
->send()) {
return $this->redirect(Yii::$app->request->referrer);
}
}