2016-09-20 3 views
2

Ich habe gerade erst begonnen, mit Laravel zu experimentieren, schön. Eine Sache l Dont obwohl verstehen, wie Laravel kennt meine Tabelle l hinzugefügt nur ein Modell und das Modell ist nicht die genauen Tabellennamen, sondern nur, wie funktioniert es verwaltet meinen Tisch zu bekommen,Laravel klingt wie Magie

Antwort

1

Laravel folgt einer Namenskonvention für eloquente Klassen und Tabellen.

Von Laravel Website | Eloquent: Getting Started

Bitte beachte, dass wir sagen nicht Eloquent, welche Tabelle für unseren Flug Modell zu verwenden. Laut Konvention wird der "Schlangenfall", Pluralname der Klasse als Tabellenname verwendet, es sei denn, ein anderer Name ist explizit angegeben. In diesem Fall wird Eloquent annehmen, dass das Flugmodell die Datensätze in der Flugtabelle speichert.

ZB.

Die Klasse User bezieht sich standardmäßig auf Mysql Tabelle users (Camel Case zu Snake Case und Plural).

Die Klasse NotificationsLog bezieht sich standardmäßig auf Mysql Tabelle notifications_logs (Kamel Fall zu Snake Case und Plural).

Aber wenn man die Konvention nicht folgen wollen, können Sie den Tabellennamen explizit

Eg nennen. Wenn ich meine Klasse wollen Plane sollte bezieht sich auf flights Tabelle in der Datenbank dann folgenden Code

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Plane extends Model 
{ 
    /** 
    * The table associated with the model. 
    * 
    * @var string 
    */ 
    protected $table = 'flights'; 
} 
8

Verweis auf Eloquent Model Conventions:

Beachten Sie, dass wir Eloquent nicht mitgeteilt haben, welche Tabelle für unser Flugmodell zu verwenden ist. Laut Konvention wird der "Schlangenfall", Pluralname der Klasse als Tabellenname verwendet, es sei denn, ein anderer Name ist explizit angegeben.

Intern macht Laravel so etwas.

$table = $table ?: Str::plural($name); 

So wird es automatisch versuchen, für den Plural von dem Namen Ihres Modells zu suchen, wenn keine $table Eigenschaft festgelegt wird.

+1

danke SteD, Laravel ist sicherlich einfacher als Zend – athene

0

Tatsächlich ist die Arbeit, wenn Sie ein Modell machen es automatisch einen Tisch machen mit ihm Plural ist Sie dies, indem hinzugefügt den folgenden Code ändern könnte im Modell

protected $table= 'table_name'; 

Bitte beachten Sie auch den Namen in der Migration überprüfen Sie es, wie der Name Ihnen in der Modellklasse erwähnt, weil es Fehler zeigen könnte, während eloquent Klasse Funktionen durch verschiedene Tabellennamen

gleich sein sollten