我有这些模型及其相关的数据库表,目前我可以检索所有需求

Requirement::all()


但是我只有一个外键列表(destination_id,applier_id,doc_id)。如何直接检索与该外键相关的行?

class Requirement extends Model
  {
    protected $fillable = [
        'required',
        'destination_id',
        'applier_id',
        'doc_id'
    ];

  public function destination()
  {
      return $this->belongsTo(Destination::class);
  }

  public function applier()
  {
     return $this->belongsTo(Applier::class);
  }

  public function doc()
  {
     return $this->belongsTo(Doc::class);
  }
}



class Doc extends Model
{
  protected $fillable = [
        'type',
        'description',
        'note'
  ];

    public function requirements()
    {
      return $this->hasMany(Requirement::class);
    }
 }



class Destination extends Model
{
    protected $fillable = [
        'country',
        'passying_country',
        'transfer_conditions',
        'passing_conditions'
     ];

   public function requirements()
   {
      return $this->hasMany(Requirement::class);
   }
}

最佳答案

您可以调用with()函数而不是all()。因此,如果您尝试以下操作:

$requirements =  Requirement::with('destination', 'applier', 'doc')->get();


将其设为dd($requirements)并查看输出。

希望它能工作。

关于php - Laravel从外键检索值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44259223/

10-16 16:15