Eloquent Laravel show Попытка получить свойство 'code' необъекта - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть 2 модели, созданные как показано ниже:

Employee.php

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;

class Employee extends Model
{
    public function grades(){
        return $this->belongsTo(Grade::class);
    }
}

, а также

Grade.php

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;

class Grade extends Model
{
    public function employee(){
        return $this->hasMany(Employee::class);
    }
}

, когдаЯ пытаюсь показать код и имя Grade в тинкере, как показано ниже

$a=App\Employee::find(15);<br>
$a->grades->code

, это выдает ошибку:

Примечание PHP: Попытка получить свойство 'code' изнеобъект в коде Psy Shell в строке 1 *

table employees:

employees

table grades:

grades

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Измените метод grades() в модели Employee на grade().

Eloquent использует имя метода для определения столбца базы данных, который будет использоваться для связи.Это также сработало бы, если бы вы изменили имя столбца на grades_id или опционально определили столбец для отношения следующим образом:

public function grades() 
{
    return $this->belongsTo(Grade::class, 'grade_id');
}
0 голосов
/ 21 сентября 2018

Пожалуйста, добавьте with и попробуйте:

$a = App\Employee::with('grades')->find(15);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...