Yii2.0积垢发生器不';我根本读不出外键

Yii2.0积垢发生器不';我根本读不出外键,yii2,Yii2,我刚刚用FORM Generator创建了三个模型。此外,我使用CRUD生成器创建了以下文件: generated controllers\BewerbungenController.php generated models\BewerbungenSearch.php generated views\bewerbungen\_form.php generated views\bewerbungen\_search.php generated views\bewerbungen\create.ph

我刚刚用FORM Generator创建了三个模型。此外,我使用CRUD生成器创建了以下文件:

generated controllers\BewerbungenController.php
generated models\BewerbungenSearch.php
generated views\bewerbungen\_form.php
generated views\bewerbungen\_search.php
generated views\bewerbungen\create.php
generated views\bewerbungen\index.php
generated views\bewerbungen\update.php  generated views\bewerbungen\view.php
done
不幸的是,Yii2.0只是按原样读取表,而没有识别表中的外键。我怎样才能解决这个问题


我可以使用generator的任何扩展或小部件吗,或者我必须像这样编程查询:

$sql = "SELECT datum,firma,art,stadt,plz,strasse_nr,ansprech_person,email,notiz 
AS feedback,bemerkung FROM bewerbungen JOIN rechtsform
ON bewerbungen.rechtsart=rechtsform.id_recht
JOIN nachricht ON bewerbungen.feedback=nachricht.id_message ORDER BY datum DESC";


namespace app\models;

use Yii;

/**
 * This is the model class for table "bewerbungen".
 *
 * @property integer $bew_id
 * @property string $datum
 * @property string $firma
 * @property integer $rechtsart
 * @property string $stadt
 * @property integer $plz
 * @property string $strasse_nr
 * @property string $ansprech_person
 * @property string $email
 * @property integer $feedback
 * @property string $bemerkung
 *
 * @property Nachricht $feedback0
 * @property Rechtsform $rechtsart0
 */
class Bewerbungen extends \yii\db\ActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'bewerbungen';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['datum', 'firma', 'stadt', 'plz', 'email'], 'required'],
            [['datum'], 'safe'],
            [['rechtsart', 'plz', 'feedback'], 'integer'],
            [['firma', 'stadt', 'strasse_nr', 'ansprech_person'], 'string', 'max' => 100],
            [['email'], 'string', 'max' => 50],
            [['bemerkung'], 'string', 'max' => 150],
            [['feedback'], 'exist', 'skipOnError' => true, 'targetClass' => Nachricht::className(), 'targetAttribute' => ['feedback' => 'id_message']],
            [['rechtsart'], 'exist', 'skipOnError' => true, 'targetClass' => Rechtsform::className(), 'targetAttribute' => ['rechtsart' => 'id_recht']],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'bew_id' => 'Bew ID',
            'datum' => 'Datum',
            'firma' => 'Firma',
            'rechtsart' => 'Rechtsart',
            'stadt' => 'Stadt',
            'plz' => 'Plz',
            'strasse_nr' => 'Strasse Nr',
            'ansprech_person' => 'Ansprech Person',
            'email' => 'Email',
            'feedback' => 'Feedback',
            'bemerkung' => 'Bemerkung',
        ];
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getFeedback0()
    {
        return $this->hasOne(Nachricht::className(), ['id_message' => 'feedback']);
    }

    /**
     * @return \yii\db\ActiveQuery
     */
    public function getRechtsart0()
    {
        return $this->hasOne(Rechtsform::className(), ['id_recht' => 'rechtsart']);
    }
}
看起来,公共函数getFeedback0()和公共函数getRechtsart0()是完全不必要的

这是表,其外键不会被读取:

CREATE TABLE `bewerbungen` (
  `bew_id` int(11) NOT NULL,
  `datum` date NOT NULL,
  `firma` varchar(100) COLLATE utf8_german2_ci NOT NULL,
  `rechtsart` int(11) DEFAULT NULL,
  `stadt` varchar(100) COLLATE utf8_german2_ci NOT NULL,
  `plz` int(11) NOT NULL,
  `strasse_nr` varchar(100) COLLATE utf8_german2_ci DEFAULT NULL,
  `ansprech_person` varchar(100) COLLATE utf8_german2_ci DEFAULT NULL,
  `email` varchar(50) COLLATE utf8_german2_ci NOT NULL,
  `feedback` int(11) DEFAULT NULL,
  `bemerkung` varchar(150) COLLATE utf8_german2_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_german2_ci;

ALTER TABLE `bewerbungen`
  ADD CONSTRAINT `bewerbungen_ibfk_1` FOREIGN KEY (`feedback`) REFERENCES `nachricht` (`id_message`),
  ADD CONSTRAINT `bewerbungen_ibfk_2` FOREIGN KEY (`rechtsart`) REFERENCES `rechtsform` (`id_recht`);

Gii自动创建与外键对应的关系,是的,您以后可以使用它们,而无需手动编程sql。发布表的结构定义,查看表中是否有错误显然,Gii不会自动创建与外键的关系!外键(见下文)反馈和rechtsart不会被读出!我必须手动编程吗,或者我可以使用小部件吗?1)不要将添加内容作为答案发布到您的问题中,只需编辑您的问题即可。2) 只发布表的结构。3) 好的,我看你有FKs。在Gii中,在模型生成器中,有一个名为“生成关系”的选择框,其值应为“所有关系”。是吗?是的。我按照U的建议使用参数创建了模型。顺便说一下:这是默认值!您能否在问题中发布(编辑)表格的生成模型代码
bewerbungen