Ich habe eine DeliveryForecast-Modell, und ich muss ein eloquent erstellen, um Daten aus mehreren Tabellen basierend auf 2 Spalten zu erhalten.Laravel Eloquent erhalten Daten von mehreren verwandten Tabelle
das ist mein delivery_forecasts Tisch
Schema::create('delivery_forecasts', function (Blueprint $table) {
$table->increments('id');
$table->enum('type',array('Quotation','Demo','Service Unit','Freebie','Back Job','Site Visit'));
$table->string('type_id');
$table->date('transaction_date');
$table->time('transaction_time')->nullable();
$table->enum('status',array('Pending','Approved','Cancelled'))->default('Pending');
$table->boolean('queue')->default(0);
$table->timestamps();
});
die Frage ist, kann ich das eloquent in Modell zu erstellen? oder wie man Bedingung macht?
zum Beispiel:
class DeliveryForecast extends Model
{
public function documents(){
if(DeliveryForecast->type == 'Quotation'){
return $this->belongsTo('App\Quotation','type_id','id');
}
if(DeliveryForecast->type == 'Demo'){
return $this->belongsTo('App\Demo','type_id','id');
}
if(DeliveryForecast->type == 'Service Unit'){
return $this->belongsTo('App\ServiceUnit','type_id','id');
}
and so on .....
}
}
Ich habe keine Ahnung, um den Zustand zu eloquent und meine Abfrage sollte so sein zu erstellen:
$delivery_forecast = DeliveryForecast::with('documents')
->get();
keine Idee Jungs? Danke im Voraus.
Werfen Sie einen Blick auf die "polymorphen" Abschnitt der Eloquent-Dokumentation – Scopey
in Ihrem Szenario müssen Sie mehrere Funktionen im 'DeliveryForecast' Modell für jede einzelne Beziehung erstellen. –