Heim > Fragen und Antworten > Hauptteil
Ich habe also eine Methode in meiner Klasse, die einen neuen Lead mit einem $fields
Parameter erstellt, den der Benutzer in einem Feld übergeben kann.
Angenommen, ich habe das folgende Format:
$new_pardot = new FH_Pardot(); $new_pardot->create_prospect();Die Methode
create_prospect()
hat create_prospect()
方法有 $fields
Parameter und muss ein Array übergeben, daher sieht das Beispiel wie folgt aus:
$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'], ]);
Gibt es eine Möglichkeit, die Eingabe der E-Mail
$fields
中的 email
密钥成为强制?用户需要传递 email
obligatorisch zu machen? Benutzer müssen den email
-Schlüssel übergeben, sie können jedoch auch andere Schlüssel übergeben, wie oben gezeigt.
Hier ist die Beispielmethode:
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);