2016-05-27 13 views
-4

Für meine Anwendung habe ich mehrere Tabellen mit derselben Basisstruktur (automatisch generierte Tabellen). Zum Beispiel habe ich die Tabelle survey_1, survey_2 und survey_23. Ist es möglich, ein Modell wie folgt zu erstellen: new Survey(2), das ein Modell für die Tabelle generiert?Dynamischer Tabellenname für Laravel-Modell

+4

Sie tun es falsch. Setzen Sie alle Daten in eine Tabelle und fügen Sie eine Spalte hinzu, um Daten in logische Teile zu trennen. – Pyton

+0

Nein, ich brauche mehrere Tabellen, weil ich Umfragetabelle mache, wo jede Spalte für einen bestimmten Fragetyp ist und jede Zeile für die Antworten der Person, die die Umfrage ausfüllt. Meine Aufgabe ist es, es so zu bauen, dass ich die Datenbankstruktur nicht ändern kann. –

+2

@BartBergmans Es gibt Möglichkeiten, mit denen umzugehen, die für jede Umfrage keine neue Tabelle benötigen. – ceejayoz

Antwort

0

Ich denke, es ist möglich. Versuchen Sie __constructor Methode in Ihrem Modell außer Kraft zu setzen

class Survey extends Model 
{ 
    public function __construct(array $attributes = []) 
    { 
     parent::construct($attributes); 
     if (array_key_exists('table', $attributes)) { 
      $this->setTable($attributes['table']) ; 
     } 
     else { 
      // do staff when table is not specified 
     } 
    } 
} 

dann

$survey_1 = new Survey(['table' => 'survey_1']); 
$survey_2 = new Survey(['table' => 'survey_2']); 
$survey_3 = new Survey(['table' => 'survey_3']); 

Ich weiß nicht, wird es funktionieren oder nicht.
Aber ich empfehle dringend, dass Sie Ihren Ansatz nicht mit separaten Tabellen verwenden.