亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Laravel 中的 Mysql Pivot 表中獲取列并返回 JSON 對象

從 Laravel 中的 Mysql Pivot 表中獲取列并返回 JSON 對象

PHP
LEATH 2021-12-24 10:16:41
我正在開發一個使用 Laravel 構建的應用程序,在后端我有一些雄辯的 2 個表之間的多對多關系,主要分別是角色和權限。還有一個名為 role_permission 的數據透視表。我在模型中創建了關系,并且在控制器中捕獲以下值以創建權限:name, description , slug, role_id。在邏輯上,將名稱、描述和 slug 存儲在權限表中,而 role_id 存儲在數據透視表 (role_permission) 中。這工作正常。在響應中,我獲取存儲在權限表中的所有權限并顯示為 JSON 對象。問題是我想獲取數據透視表中的 role_id 并附加到顯示為響應的每個 JSON 對象。榜樣<?phpnamespace Modules\API\Entities;use Modules\API\Entities\Permission;use Illuminate\Database\Eloquent\Model;class Role extends Model{    protected $fillable = ['name' , 'slug' , 'description'];    /**     * A role has more than one permission    */    public function permissions(){        return $this->belongsToMany(Permission::class , 'role_permission');    }}權限模型<?phpnamespace Modules\API\Entities;use Modules\API\Entities\Role;use Illuminate\Database\Eloquent\Model;class Permission extends Model{    protected $fillable = ['name' , 'slug' , 'description'];     /**     * A permission has more than one role    */    public function roles(){        return $this->belongsToMany(Role::class , 'role_permission');    }}上述邏輯后 POSTMAN 中的示例響應{    "request_time": "2019-09-03 07:54:54",    "response_time": "2019-09-03 07:54:54",    "status": "success",    "message": "Permision Successfully added",    "data": [        {            "id": 1,            "name": "Create Post",            "slug": "craete-post",            "description": "mnmnmn"        },        {            "id": 3,            "name": "delete User",            "slug": "del-user",            "description": "mnmnmn"        },        {            "id": 5,            "name": "Create User",            "slug": "create-user",            "description": "mnmnmn"        }    ]}
查看完整描述

1 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

嘗試改變:


$permissions = Permission::select('id' , 'name', 'slug', 'description')->get()->toArray();

進入:


$permissions = Permission::select('id' , 'name', 'slug', 'description')->with('roles')->get()->toArray();


$mappedPermissions = array_map(function ($permission) { 

    $permission['role_id'] = data_get($permission, '0.pivot.role_id');


    unset($permission['roles']); 


    return $permission; 

}, $permissions);


// Then use the $mappedPermissions from here on.


查看完整回答
反對 回復 2021-12-24
  • 1 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號