Получение имени внешнего ключа через несколько связей в представлении блейда Laravel

#php #laravel #foreign-keys #laravel-7 #eloquent-relationship

#php #laravel #внешние ключи #laravel-7 #красноречивое отношение

Вопрос:

Я пытаюсь получить имя внешнего ключа через взаимосвязь нескольких имен внешних ключей в моем представлении блейда Laravel, но оно не возвращает имя внешнего ключа и выдает мне сообщение «Пытаюсь получить свойство «местоположение» не-объекта

В моем представлении блейда я пытаюсь получить имя внешнего ключа следующим образом:

 <input type="text" class="form-control" value="{{ $document->office->location->location_name }}" disabled> 
 

Это моя модель документа:

 class Document extends Model
{

    protected $fillable = [
      'doc_code',
      'doc_name',
      'doc_description',
      'office_id',
    ];

    public function office() {
      return $this->belongsTo(Office::class);
    }
}
 
 

Это моя модель office:

 class Office extends Model
{

    protected $fillable = [
      'location_id',
      'office_name',
    ];

    public function location() {
      return $this->belongsTo(Location::class);
    }
}
 
 

Это моя модель местоположения:

 class Location extends Model
{

    protected $fillable = [
      'location_name',
      'location_address',
    ];

}
 
 

Это код для моего представления в моем контроллере документов:

 public function show($id)
    {
        $office = Office::all();
        $document = Document::find($id);

        return view('documents.show',compact('document', 'office'));
    } 
 

Чего мне не хватает, чтобы получить имя внешнего ключа на основе другого внешнего ключа, подобного приведенному выше?

Комментарии:

1. id ваш первичный ключ?? и убедитесь, что у вас есть значение в БД.

2. Да, id — это первичный ключ моего документа. В базе данных есть значения.