为什么Laravel Relation总是空的

时间:2018-02-05 01:44:26

标签: php laravel-5.3 laravel-eloquent

我正在尝试建立两个模型之间的关系,但与一个模型的关系总是空的。

我有以下型号

Profile Model

class Profile extends Model
{
    protected $table = 'members';

    public function photos(){
        return $this->hasMany('App\Models\Photo', 'uid', 'id');
    }
}

Photo Model

class Photo extends Model
{
    protected $table = "member_photo";

    public function member()
    {
        return $this->belongsTo('App\Models\Profile', 'id', 'uid');
    }
}

当我尝试访问从照片模型到配置文件模型的关系时,它总是empty

belongsTo 没有给我任何关系。

Member Table

Member Table

Member_photo

enter image description here

请帮助

2 个答案:

答案 0 :(得分:0)

你有实际的相关记录吗?请记住,您需要有相关的实际记录。您需要使用例如

创建表
php artisan make:migration create_members_table
php artisan make:migration create_members_photo_table

然后在迁移中更改模式,运行它(php artisan migrate:install / php artisan migrate:refresh), 然后创建相关记录,您可以使用" php artisan tinker"轻松实现这一目标。

我不知道你是如何检查关系的,但如果它返回"空的"它意味着存在关系,它只是没有找到任何相关的记录。

答案 1 :(得分:0)

我认为belongsTo()的论点错误。即它应该是belongsTo('App\Models\Profile', 'uid', 'id');