Laravel 8 工廠狀態(tài)

2021-07-26 09:32 更新

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

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

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號