yii2 gii CRUD Generator error — класс «Сообщение» не существует или имеет синтаксическую ошибку

Я создаю базовую текстовую систему личных сообщений для веб-сайта с использованием yii2 advanced.

Я использую модель gii и генераторы CRUD, но столкнулся с проблемой генерации CRUD после создания класса модели. Мне интересно, может ли это быть проблема с внешними ключами в таблице сообщений, которые имеют отношение один ко многим с таблицей пользователей (то есть один пользователь может иметь много сообщений).

Когда я пытаюсь запустить генератор CRUD с
Модель Класса — Сообщение
Search Model Class — внешний интерфейс \ models \ search \ MessageSearch
Класс контроллера — внешний интерфейс \ контроллеры \ MessageController

Я получаю следующее ошибка

Класс «Сообщение» не существует или имеет синтаксическую ошибку.

Класс Message определенно существует и
синтаксис
исправить в соответствии с моей IDE.

Есть идеи, что может быть причиной ошибки?

Сгенерированный класс сообщений выглядит следующим образом:

<?php
namespace frontend\models;

use Yii;

/**
* This is the model class for table "message".
*
* @property integer $id
* @property string $title
* @property string $message
* @property integer $from_id
* @property integer $to_id
* @property integer $from_viewed
* @property integer $to_viewed
* @property integer $from_deleted
* @property integer $to_deleted
* @property string $from_vdate
* @property string $to_vdate
* @property string $from_ddate
* @property string $to_ddate
* @property string $created
*
* @property User $to
* @property User $from
*/
class Message extends \yii\db\ActiveRecord
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'message';
}

/**
* @inheritdoc
*/
public function rules()
{
return [
[['message', 'from_id', 'to_id', 'created'], 'required'],
[['message'], 'string'],
[['from_id', 'to_id', 'from_viewed', 'to_viewed', 'from_deleted', 'to_deleted'], 'integer'],
[['from_vdate', 'to_vdate', 'from_ddate', 'to_ddate', 'created'], 'safe'],
[['title'], 'string', 'max' => 255]
];
}

/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'title' => 'Title',
'message' => 'Message',
'from_id' => 'From ID',
'to_id' => 'To ID',
'from_viewed' => 'From Viewed',
'to_viewed' => 'To Viewed',
'from_deleted' => 'From Deleted',
'to_deleted' => 'To Deleted',
'from_vdate' => 'From Vdate',
'to_vdate' => 'To Vdate',
'from_ddate' => 'From Ddate',
'to_ddate' => 'To Ddate',
'created' => 'Created',
];
}

/**
* @return \yii\db\ActiveQuery
*/
public function getTo()
{
return $this->hasOne(User::className(), ['id' => 'to_id']);
}

/**
* @return \yii\db\ActiveQuery
*/
public function getFrom()
{
return $this->hasOne(User::className(), ['id' => 'from_id']);
}
}

Таблица sql — это

--

— Структура стола для стола message

СОЗДАЙТЕ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ message (
id int (11) NOT NULL AUTO_INCREMENT,
title varchar (255) DEFAULT NULL,
message текст НЕ НУЛЬ,
from_id int (11) NOT NULL,
to_id int (11) NOT NULL,
from_viewed tinyint (1) NOT NULL ПО УМОЛЧАНИЮ ‘0’,
to_viewed tinyint (1) NOT NULL ПО УМОЛЧАНИЮ ‘0’,
from_deleted tinyint (1) NOT NULL ПО УМОЛЧАНИЮ ‘0’,
to_deleted tinyint (1) NOT NULL ПО УМОЛЧАНИЮ ‘0’,
from_vdate datetime DEFAULT NULL,
to_vdate datetime DEFAULT NULL,
from_ddate datetime DEFAULT NULL,
to_ddate datetime DEFAULT NULL,
created datetime НЕ NULL,
ОСНОВНОЙ КЛЮЧ (id),
KEY from_id (from_id),
KEY to_id (to_id)
) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ = latin1 AUTO_INCREMENT = 7;

— Ограничения для таблицы message

ALTER TABLE message
ДОБАВИТЬ ОГРАНИЧЕНИЕ message_ibfk_2 ИНОСТРАННЫЙ КЛЮЧ (to_id) РЕКОМЕНДАЦИИ user (id),
ДОБАВИТЬ ОГРАНИЧЕНИЕ message_ibfk_1 ИНОСТРАННЫЙ КЛЮЧ (from_id) РЕКОМЕНДАЦИИ user (id);

0

Решение

В том сообщении, которое вы получаете, синтаксическая ошибка относится к ошибке в определении класса, которое вы предоставляете для gii. Таким образом, gii не может найти вашу модель, используя Message как определение.

Так должно быть frontend\models\Message,

1

Другие решения

Взгляни на это ссылка на сайт.Пространство имен вашей модели может быть злодеем.

Попробуйте изменить пространство имен вашей модели на

use app/models/Message

И я не думаю, что внешние ключи имеют какое-либо отношение к вашей проблеме.

1

По вопросам рекламы [email protected]