Laravel 8 條件中間表信息

2021-07-19 11:47 更新

除了在你的資源響應(yīng)中有條件地包含關(guān)聯(lián)外,你還可以使用 whenPivotLoaded 方法有條件地從多對(duì)多關(guān)聯(lián)的中間表中添加數(shù)據(jù)。 whenPivotLoaded 方法接受的第一個(gè)參數(shù)為中間表的名稱。第二個(gè)參數(shù)是一個(gè)閉包,它定義了在模型上如果中間表信息可用時(shí)要返回的值:

/**
 * 將資源轉(zhuǎn)換成數(shù)組
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'expires_at' => $this->whenPivotLoaded('role_user', function () {
            return $this->pivot->expires_at;
        }),
    ];
} 

如果你的中間表使用的是 pivot 以外的訪問器,你可以使用 whenPivotLoadedAs 方法:

/**
 * 將資源轉(zhuǎn)換成數(shù)組
 *
 * @param  \Illuminate\Http\Request  $request
 * @return array
 */
public function toArray($request)
{
    return [
        'id' => $this->id,
        'name' => $this->name,
        'expires_at' => $this->whenPivotLoadedAs('subscription', 'role_user', function () {
            return $this->subscription->expires_at;
        }),
    ];
} 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)