所以我的類別中有一個方法,它將建立一個新的潛在客戶,其中有一個 $fields
參數,使用者可以在欄位中傳遞該參數。
假設我有以下格式:
$new_pardot = new FH_Pardot(); $new_pardot->create_prospect();
create_prospect()
方法有 $fields
參數,需要傳入一個數組,因此範例如下:
$new_pardot->create_prospect([ 'email' => $posted_data['email'], // Make key mandatory or throw error on method. 'firstName' => $posted_data['first-name'], 'lastName' => $posted_data['last-name'], ]);
有沒有辦法讓 $fields
中的 email
金鑰成為強制?使用者需要傳遞 email
金鑰,但他們可以選擇傳遞其他金鑰,如上所示。
這裡是範例方法:
public function create_prospect(array $fields) { // Other logic in here. }
P粉0193532472024-01-30 12:35:18
您應該為您的 $posted_data['email'].
建立一個驗證並檢查它是否是必需的。
但如果你想要這種格式,你可以嘗試以下方法:
1- 對電子郵件使用單獨的參數:
public function create_prospect($email,array $fields) { // Other logic in here. }
2-更好的方法是檢查數組中的電子郵件字段,無論是否有外部函數:
public function create_prospect(array $fields) { if(!array_key_exists("email", $fields)){ // printing error! => echo 'error' or throw an exception return; } }
P粉6681466362024-01-30 12:20:08
您可以採用多種方法中的一種來進行驗證。 兩個明顯的方法是在 create_prospect
函數內進行驗證,或在呼叫 create_prospect
之前/外部進行驗證。
傳統方法是在嘗試建立實體之前進行驗證。它使收集和顯示驗證錯誤比從各個地方拋出驗證訊息更容易。
public function create_prospect(array $fields) { if (!isset($fields['email']) { throw new ValidationException('Please provide an email'); } ... carry on with your work }
$fields = [ 'email' => $posted_data['email'], 'firstName' => $posted_data['first-name'], 'lastName' => $posted_data['last-name'], ]; if (!isset($fields['email']) { throw new ValidationException('Please provide an email'); } $new_pardot = new FH_Pardot(); $new_pardot->create_prospect($fields);