sql >> Databáze >  >> RDS >> Mysql

Migrace Cizí klíč versus výmluvné vztahy v Laravelu

Obojí jde ruku v ruce. Jedno je nekompletní bez druhého. Pokud chcete, aby vaše vztahy fungovaly správně, musíte obě tyto věci definovat.

Pokud jste právě definovali cizí klíč v migračním souboru, vztah by fungoval pouze v případě, že napíšete nezpracovaný dotaz. Od té doby to na vašich modelech nebude fungovat, nenapsal jste nic o vztazích ve vašich modelech.

Takže, jakmile napíšete hasMany v jednom z vašich modelů a odpovídající funkce v druhém modelu, teprve potom o sobě vaše modely vědí a pak můžete úspěšně vyhledávat věci prostřednictvím vašeho modelu i ve vaší databázi.

Všimněte si také, že pokud máte správně definované vztahy pomocí hasMany a belongsTo ve vašich modelech, ale nezadali jste cizí klíč v tabulce modelu, kterému belongsTo jiná tabulka, vaše vztahy nebudou fungovat.

Stručně řečeno, obojí je stejně povinné.



  1. Dotaz MySQL se provede, ale vyvolá výjimku

  2. Doctrine Query Language získat maximální/nejnovější řádek na skupinu

  3. Jak mohu ZMĚNIT tabulku PostgreSQL a učinit sloupec jedinečným?

  4. Jak mohu připojit více tabulek SQL pomocí ID?