2016-08-02 26 views
5

in meinem Modell findet habe ichwie funktioniert Laravel die Verbindung zwischen den Modellen und seine Tabelle in der Datenbank

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class Page extends Model 
{ 
    // 
} 

in meinem Controller i Page:all() sagen kann, und alle Zeilen aus pages Tabelle bekommen, aber ich habe nicht jede Verbindung sehen zwischen Modell und pages Tabelle in der Datenbank

Erraten nur Tabellennamen basierend auf dem Modellnamen (Kleinbuchstaben mit zusätzlichen s am Ende) oder es ist woanders erwähnt?

Antwort

4

Wie Sie in der Dokumentation sehen, das ist die Magie der Laravel ist :-)

https://laravel.com/docs/5.2/eloquent#defining-models (siehe Tabelle Namen)

Wenn Sie möchten, können Sie einen anderen Namen manuell vom Benutzer

folgende einstellen

protected $table = 'my_table_name';

Und ein bisschen weiter zu gehen, das ist, wie Laravel die Tabellennamen in dem Basismodell bekommt man bei /vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php

finden kann
/** 
* Get the table associated with the model. 
* 
* @return string 
*/ 
public function getTable() 
{ 
    if (isset($this->table)) { 
     return $this->table; 
    } 

    return str_replace('\\', '', Str::snake(Str::plural(class_basename($this)))); 
}