#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 — это первичный ключ моего документа. В базе данных есть значения.