簡體   English   中英

將對象返回為json時訪問雄辯的關系

[英]Access eloquent relationships when return object as json

我目前正在使用Laravel / Lumen構建JSON RESTful API,現在嘗試訪問存儲在此模型關系中的模型屬性

// I also want to return User->roles
return User::find(1)->first();

返回值:

{
  "id": 2,
  "email": '...'
}

我實際上找到了一種方法,但這似乎被黑了,而且不干凈

    // Get user
    $user = User::find($id)->first();

    // Make roles public
    $user->roles = $user->roles;

    // Return object
    return $user;

返回值:

{
  "id": 2,
  "email": '...',
  "roles": [
  ...
  ]
}

有沒有更好的辦法? 還是您想保護數據的這種安全性? 但是既然可以在php中訪問該關系,為什么不應該將它作為json對象返回呢?

在laravel文檔中找不到任何內容

您可以在關系中使用helper函數with例如:

user::find($id)->with('roles')->first()

最短的語法是:

User::with('roles')->find($id);

在這種情況下,無需使用first()

嘗試這個:

$user = User::with('roles')->where('id',  $id)->first();
public function show(User $user) {
        return $user->load('books');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM