meine Codes werden von Laravel + Dingo erstellt.Laravel eloquent Modelle eins zu viele Beziehung mit Dingo Transformator
Ich habe zwei Modelle, die man zu viele Beziehung sind:
Reservation.php (Master)
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Reservation extends Model
{
protected $table = 'dbo.Reservation';
public function hasManyReservationDetails()
{
return $this->hasMany('App\Models\ReservationDetail', 'ReservationID', 'ReservationID');
}
}
ReservationDetail.php (Detail)
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ReservationDetail extends Model
{
protected $table = 'dbo.ReservationDetail';
public function belongsToReservation()
{
return $this->belongsTo('App\Models\Reservation', 'ReservationID', 'ReservationDetailID');
}
}
und zwei Transformatoren für die zwei Modelle wie folgt:
ReservationTransformer
public function transform(Reservation $reservation)
{
return [
'reservation_id' => (int) $reservation->ReservationID,
'reservation_no' => $reservation->ReservationNo,
];
}
ReservationDetail Transformator
public function transform(ReservationDetail $reservation_detail)
{
return [
'reservation_detail_id' => (int) $reservation_detail->ReservationDetailID,
'reservation_id' => (int) $reservation_detail->ReservationID,
'room_no' => $reservation_detail->RoomNo,
];
}
Mein Controller und erkundigen
$reservation = Reservation::where('ReservationNo', '=', $reservation_no)
->with('ReservationDetails')
->get();
return $reservation;
erhalte ich die folgende Rückkehr
{
"Reservations": [
{
"ReservationID": "1",
"ReservationNo": "2016-06-01 16:50:59.0659",
"reservation_details": [
{
"ReservationDetailID": "1",
"ReservationID": "1",
"RoomNo": "001",
},
{
"ReservationDetailID": "2",
"ReservationID": "1",
"RoomNo": "002",
}
]
}
]
}
Ich versuche, die folgenden aber nur die Übersetzung von Master zurückkehren Tabelle.
$reservation = $this->collection($reservation, new ReservationTransformer());
**
Wie kann ich die Daten von Master und Detailtabelle zusammen verwandeln?
**
ich nicht wirklich bin verstehen, wie ‚Custom Transformationsschicht‘ arbeitet, jeder, der ein Beispiel geben kann mir?
Vielen Dank.