php - Laravel getRelations() 返回空白

标签 php laravel foreign-keys

I'm trying to query a relationship for use with an accessor with getNameAttribute this is my code

<?php namespace App;

use Illuminate\Database\Eloquent\Model;

class Conference extends Model{

    public function getNameAttribute() {
        return $this->getRelation('event')->name;
    }

    public function event() {
        return $this->belongsTo('App\Event');
    }

    public function speakers() {
        return $this->hasMany('App\Speaker');
    }
}

但它什么也没返回..我做错了什么吗? 谢谢!

最佳答案

在您请求关系 event 时,此关系尚未加载,这就是您获得空值的原因。如果你想访问 event 关系,只需执行此 $this->event 它将加载它,因此你可以访问它的属性:

public function getNameAttribute() {
    return $this->event->name;
}

getRelation 方法将返回给你一个关系,如果它已经加载到模型中,它不会触发加载。

关于php - Laravel getRelations() 返回空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30525259/

相关文章:

java - 如何使用 hibernate 将这个复杂的对象持久保存到数据库中?

php - 我如何获得 'sign' 或 'name' 行结果? (PHP)

javascript - 如何通过 API 调用附加到 WordPress 定制器中的选择框?

Mysql - 将auto_increment添加到主键

.net - 循环外键。我该如何处理它们?

php - 通过 SSH 连接 Firebird DB

php - 哪个MySQL查询有效获取记录总数

php - 使用 bonfire (codeigniter) 加入查询

php - 无法在 CentOS 7 上安装 Laravel 5

mysql - 似乎无法将 MySQL 查询转换为 Laravel 查询生成器