角色和权限多对多查询出关联的问题?

角色模型:

Position.php

/**
 * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
 */
public function permissions()
{
    return $this->belongsToMany(Permission::class,'position_permission_ref','position_id','permission_id')->withTimestamps();
}

权限模型:

Permission.php

public function positions()
{
    return $this->belongsToMany(Position::class,'position_permission_ref','permission_id','position_id')->withTimestamps();
}

我现在是获取所有的角色列表.需要查询出关联表的权限名称.

使用你说的方法

<?php

namespace App\Transformers;

use App\Models\Position;
use League\Fractal\TransformerAbstract;

class PositionTransformer extends TransformerAbstract {

    protected $availableIncludes = ['permissions'];

    public function transform(Position $position)
    {
        return [
            'id'          => $position->id,
            'name'        => $position->name,
            'description' => $position->description,
            'status'      => $position->status,
            'created_at'  => $position->created_at->toDateTimeString(),
            'updated_at'  => $position->updated_at->toDateTimeString(),
        ];
    }

    public function includePermissions(Position $position)
    {
        return $this->item($position->permissions, new PermissionTransformer());
    }

}

报错如下:

file

by JeffreyBool blog :point_right: link
JeffreyBool
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 2
liyu001989

file

你这样学习一部分就来问问题,我们该怎么帮你。permissions 明显是个集合,需要用$this->colleciton。你得理解完教程,理解完 fractal 的用法再开始使用啊。课程中的角色权限同你自己的有很大区别吗?

6年前 评论
JeffreyBool

@liyu001989 权限自己做的.没用第三方扩展包.很无奈啊

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!