lundi 1 août 2016

Fwo foreign keys pointing to the same table / model

I have two models:

  • TRUCK
  • DRIVER

TRUCK has two fiels which are FKs. Driver and Driver2.

When I try to get the truck with driver and driver2, I get two same records.

    $truck = $this->instance->truck()->where('id', $id)
            ->with(['driver', 'driver2',])
            ->firstOrFail();

My Truck Model:

class Truck extends Model
{
    use SoftDeletes;       
    protected $table = 'trucks';
    protected $guarded = ['id'];
    protected $dates = ['deleted_at'];

    public function driver()
    {
        return $this->hasOne('App\Models\Driver');
    }

    public function driver2()
    {
        return $this->hasOne('App\Models\Driver');
    }   

My Driver Model:

class Driver extends Model
{
    use SoftDeletes;    
    protected  $table = 'drivers';
    protected $guarded = ['id'];
    protected $dates = ['deleted_at'];

    public function truck()
    {
        return $this->belongsTo('App\Models\Truck');
    }

I am still new to laravel and something I get stuck. Should I create another model instead maybe?



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire