Laravel 8 工廠狀態(tài)

2021-07-26 09:32 更新

工廠狀態(tài)可以讓你任意組合你的模型工廠,僅需要做出適當(dāng)差異化的修改,就可以達(dá)到讓模型擁有多種不同的狀態(tài)。例如, 你的 User 模型中可以修改某個默認(rèn)屬性值來達(dá)到標(biāo)識一種 suspended 狀態(tài)。你可以使用 state 方法來進(jìn)行這種狀態(tài)轉(zhuǎn)換。您可以根據(jù)自己的喜好命名狀態(tài)方法。 畢竟,這只是一個典型的 PHP 方法:

/**
 * 標(biāo)識用戶 「 已暫停 」 狀態(tài)。
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended()
{
    return $this->state([
        'account_status' => 'suspended',
    ]);
} 

如果狀態(tài)轉(zhuǎn)換需要訪問工廠定義的其他屬性,則可以將回調(diào)傳遞給 state 方法。 回調(diào)將收到為工廠定義的原始屬性數(shù)組:

/**
 * 標(biāo)識用戶 「 已暫停 」 狀態(tài)。
 *
 * @return \Illuminate\Database\Eloquent\Factories\Factory
 */
public function suspended()
{
    return $this->state(function (array $attributes) {
        return [
            'account_status' => 'suspended',
        ];
    });
} 
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號