php - 如何在 Eloquent 中获取一个属性抛出一个表?

标签 php mysql laravel laravel-5 eloquent

我有属于类别表的子类别表的请求表,那么我如何从请求模型中获取类别的属性?

tables

->requests
id
name
subcategory_id


->subcategories
id
name
category_id


->categories
id
name
color

所以我需要从请求模型中获取颜色,我已经创建了树模型

class Request extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class)->get();
    }

    public function color()
    {
        $somemagicstuff;
        
        return $color;
    }
}

最佳答案

您需要定义您的关系:

# Request.php

class Request extends Model
{  
    public function subcategory()
    {    
        return $this->belongsTo(Subcategory::class);
    }
}

-

# Subcategory.php

class Subcategory extends Model
{  
    public function category()
    {    
        return $this->belongsTo(Category::class);
    }
}

那么你可以这样做:

$color = Request::first()->subcategory->category->color;

当然,您可以将计算属性添加到您的 Request 类以方便访问(请记住,这可能会增加查询的数量):

# Request.php

class Request extends Model
{  
    public function subcategory()
    {    
        return $this->belongsTo(Subcategory::class);
    }

    public function getColorAttribute()
    {    
        return $this->subcategory->category->color;
    }
}

然后:

$color = Request::first()->color;

关于php - 如何在 Eloquent 中获取一个属性抛出一个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55836406/

相关文章:

php - 使用 $_SESSION 超全局获取当前在线用户并稍后将其设置回当前 session 数据是否不好?

MySQL 内联 View "unknown fields"

php - MySql AES_DECRYPT 和 AES_ENCRYPT key 在 PHP 中不起作用

python - 在flask中从mysql解析json以从记录中获取字段

php - 如果在 iframe 中查看页面,如何在 Wordpress 中添加正文类?

php - 在 PHP 函数中使用函数结果作为默认参数

php - 在缩放级别 n 计算谷歌地图的图 block 大小

angular - Laravel 未在实时服务器上设置 XSRF-Token cookie

php - 如何在 Bootstrap 模式中添加功能 - Laravel

Laravel - 检索多对多多态关系的逆(带分页)