微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

雄辩的Laravel显示试图获取非对象的属性“代码”

我有如下创建的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);
    }
}

当我尝试在修补程序中显示等级的代码名称时,如下所示

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

它给我错误

PHP Notice: Trying to get property ‘code’ of non-object in Psy Shell code on line 1*

表员工:

employees

表等级:

grades

解决方法:

将Employee模型中的grades()方法更改为grade().

Eloquent使用方法名称来确定要用于该关系的数据库列.如果您将列名称更改为grades_id,或者您可以选择在关系上定义列,例如:

public function grades() 
{
    return $this->belongsTo(Grade::class, 'grade_id');
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐