Heim > Artikel > Backend-Entwicklung > Beredte ORM-Studiennotizen
Ich lerne Laravel kürzlich und finde, dass die ORM-Funktion sehr leistungsfähig ist. Ich habe sie hier nur kurz untersucht. Wenn Sie bessere Notizen haben, teilen Sie sie bitte mit.
Da der Schwerpunkt auf Eloquent ORM liegt, werden die Routing-Einstellungen und der Controller nicht im Detail beschrieben. Hier gehen wir direkt zum Modul „Modelle“.
1. Datenbankvorbereitung (Mysql)
Hier müssen Sie zwei Tabellen erstellen, Benutzer und Benutzer_ext, und die Daten initialisieren:
<span> 1</span> <span>CREATE</span> <span>TABLE</span> <span> 2</span> <span>IF</span> <span>NOT</span> <span>EXISTS</span><span> users ( </span><span> 3</span> iAutoId <span>INT</span> (<span>11</span>) <span>NOT</span> <span>NULL</span><span> AUTO_INCREMENT, </span><span> 4</span> sNmame <span>VARCHAR</span> (<span>20</span><span>), </span><span> 5</span> iStatus <span>TINYINT</span> (<span>4</span><span>), </span><span> 6</span> iCreateTime <span>INT</span> (<span>11</span><span>), </span><span> 7</span> <span>PRIMARY</span> <span>KEY</span><span> (iAutoId) </span><span> 8</span> ) ENGINE <span>=</span> INNODB <span>DEFAULT</span> CHARSET <span>=</span> utf8 AUTO_INCREMENT <span>=</span> <span>1</span><span>; </span><span> 9</span> <span>10</span> <span>INSERT</span> <span>INTO</span><span> users (sNmame, iStatus, iCreateTime) </span><span>11</span> <span>VALUES</span> <span>12</span> (<span>'</span><span>test1</span><span>'</span>, <span>1</span>, <span>1400085387</span><span>), </span><span>13</span> (<span>'</span><span>test2</span><span>'</span>, <span>1</span>, <span>1400085387</span><span>), </span><span>14</span> (<span>'</span><span>test3</span><span>'</span>, <span>1</span>, <span>1400085387</span><span>), </span><span>15</span> (<span>'</span><span>test4</span><span>'</span>, <span>1</span>, <span>1400085387</span><span>), </span><span>16</span> (<span>'</span><span>test5</span><span>'</span>, <span>1</span>, <span>1400085387</span><span>), </span><span>17</span> (<span>'</span><span>test6</span><span>'</span>, <span>1</span>, <span>1400085387</span><span>); </span><span>18</span> <span>19</span> <span>CREATE</span> <span>TABLE</span> <span>20</span> <span>IF</span> <span>NOT</span> <span>EXISTS</span><span> users_ext ( </span><span>21</span> iAutoId <span>INT</span> (<span>11</span>) <span>NOT</span> <span>NULL</span><span> AUTO_INCREMENT, </span><span>22</span> iAge <span>DECIMAL</span> (<span>3</span>, <span>0</span><span>), </span><span>23</span> sSex <span>TINYINT</span> (<span>4</span><span>), </span><span>24</span> iUserID <span>INT</span> (<span>11</span><span>), </span><span>25</span> <span>PRIMARY</span> <span>KEY</span><span> (iAutoId) </span><span>26</span> ) ENGINE <span>=</span> INNODB <span>DEFAULT</span> CHARSET <span>=</span> utf8 AUTO_INCREMENT <span>=</span> <span>1</span><span>; </span><span>27</span> <span>28</span> <span>INSERT</span> <span>INTO</span><span> users_ext (iAge, sSex, iUserID) </span><span>29</span> <span>VALUES</span> <span>30</span> (<span>24</span>, <span>1</span>, <span>1</span><span>), </span><span>31</span> (<span>109</span>, <span>0</span>, <span>2</span><span>), </span><span>32</span> (<span>25</span>, <span>1</span>, <span>3</span><span>), </span><span>33</span> (<span>20</span>, <span>1</span>, <span>5</span><span>), </span><span>34</span> (<span>68</span>, <span>0</span>, <span>4</span><span>), </span><span>35</span> (<span>48</span>, <span>1</span>, <span>6</span>);
2. Datenbank konfigurieren
Datenbankkonfiguration in Datenbank.php hinzufügen:
<span> 1</span> <?<span>php </span><span> 2</span> <span> 3</span> <span>return</span><span> [ </span><span> 4</span> <span> 5</span> 'fetch' => PDO::FETCH_CLASS, <span> 6</span> <span> 7</span> 'default' => 'user', <span> 8</span> <span> 9</span> 'connections' =><span> [ </span><span>10</span> 'user' =><span> [ </span><span>11</span> 'driver' => 'mysql', <span>12</span> 'host' => 'localhost:3306', <span>13</span> 'database' => 'test', <span>14</span> 'username' => 'root', <span>15</span> 'password' => 'root', <span>16</span> 'charset' => 'utf8', <span>17</span> 'collation' => 'utf8_unicode_ci', <span>18</span> 'prefix' => '', <span>19</span> ], <span>20</span> <span> ] </span><span>21</span> ];
3. Benutzermodell erstellen
Erstellen Sie UserModel.php unter appmodels
<span>1</span> <?<span>php </span><span>2</span> <span>3</span> <span>class</span> UserModel <span>extends</span><span> \Eloquent { </span><span>4</span> <span>protected</span> <span>$table</span> = 'users'<span>; </span><span>5</span> <span>protected</span> <span>$primaryKey</span> = 'iAutoID'<span>; </span><span>6</span> <span>protected</span> <span>$connection</span> = 'user'<span>; </span><span>7</span> }
Ein solches Benutzermodell wurde erfolgreich erstellt und der Code ist sehr einfach. Was die Bedeutung der Mitgliedsvariablen betrifft, glaube ich, dass sie jeder verstehen kann. Sie stellen den Tabellennamen, den Primärschlüssel und die Datenbankverbindungskennung (in der Konfigurationsdatei) dar.
5. Verwenden Sie UserModel
Jetzt können Sie es überall verwenden. Es kann in Controllern und Routern verwendet werden. Hier ist ein einfaches Beispiel:
Jetzt gibt es eine Abfrageanweisung:
<span> 1</span> <span>SELECT</span> <span> 2</span> <span> users.sNmame, </span><span> 3</span> <span> users.iCreateTime, </span><span> 4</span> <span> users_ext.iAge, </span><span> 5</span> <span> users_ext.sSex </span><span> 6</span> <span>FROM</span> <span> 7</span> <span> users </span><span> 8</span> <span>LEFT</span> <span>JOIN</span> users_ext <span>ON</span> users.iAutoId <span>=</span><span> users_ext.iUserID </span><span> 9</span> <span>WHERE</span> <span>10</span> users.iStatus <span>=</span> <span>1</span> <span>11</span> <span>AND</span> users_ext.sSex <span>=</span> <span>0</span> <span>12</span> <span>ORDER</span> <span>BY</span> <span>13</span> <span> users.iCreateTime </span><span>14</span> LIMIT <span>0</span><span>, </span><span>15</span> <span>1</span>
Hier ist eine einfache Abfrageanweisung, die in Form von ORM implementiert wird:
<span>1</span> <span>public</span> <span>function</span><span> getUsers(){ </span><span>2</span> <span>3</span> <span>$select</span> = 'users.sNmame,users.iCreateTime,users_ext.iAge,users_ext.sSex'<span>; </span><span>4</span> <span>$resData</span> = UserModel::selectRaw(<span>$select</span>)->leftJoin('users_ext','users.iAutoId','=','users_ext.iUserID')->where('users.iStatus','=',1)->where('users_ext.sSex','=',0)->skip(0)->limit(1)-><span>get(); </span><span>5</span> <span>var_dump</span>(<span>$resData</span>-><span>toArray()); </span><span>6</span> <span>exit</span><span>(); </span><span>7</span> }
Das Folgende sind die Abfrageergebnisse:
OK, das Obige ist nur ein einfaches Beispiel für eine Abfrage, es gibt noch viel zu studieren, wie zum Beispiel die Zuordnung zwischen Modulen usw.
Das Obige stellt die Eloquent ORM-Studiennotizen vor, einschließlich der relevanten Inhalte. Ich hoffe, dass sie für Freunde hilfreich sind, die sich für PHP-Tutorials interessieren.