Yii2.0积垢发生器不';我根本读不出外键
我刚刚用FORM Generator创建了三个模型。此外,我使用CRUD生成器创建了以下文件: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
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
?