YII는 양식을 처리하고 사용자 입력을 검증하기위한 강력한 프레임 워크를 제공합니다. 핵심 구성 요소는 yii\widgets\ActiveForm
위젯이며 프로세스를 크게 단순화합니다. 이 위젯은 모델의 속성 및 유효성 검사 규칙에 따라 양식 필드에 대한 HTML을 자동으로 생성합니다.
예를 들어 설명합시다. ContactForm
모델이 있다고 가정합니다.
<code class="php"><?php namespace app\models; use yii\base\Model; class ContactForm extends Model { public $name; public $email; public $subject; public $body; public function rules() { return [ [['name', 'email', 'subject', 'body'], 'required'], ['email', 'email'], ]; } }</code></code>
귀하의 견해로는 다음과 같은 ActiveForm
사용합니다.
<code class="php"><?php $form = \yii\widgets\ActiveForm::begin(); ?> = $form->field($model, 'name')->textInput() ?> = $form->field($model, 'email')->textInput() ?> = $form->field($model, 'subject')->textInput() ?> = $form->field($model, 'body')->textarea(['rows' => 6]) ?> <div class="form-group"> = Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php \yii\widgets\ActiveForm::end(); ?></code>
이것은 각 속성에 대한 입력 필드가있는 양식을 생성합니다. 모델의 rules()
메소드는 유효성 검사 규칙을 정의합니다. 양식이 제출되면 $model->validate()
가이 규칙에 대한 입력을 확인합니다. 유효성 검사가 실패하면 오류 메시지가 해당 필드 옆에 자동으로 표시됩니다. $model->attributes
통해 검증 된 데이터에 액세스 할 수 있습니다. 컨트롤러 작업에서 양식 제출을 처리해야합니다.
YII에서 양식을 확보하는 데 몇 가지 중요한 단계가 포함됩니다.
Html::encode()
함수는 친구입니다. 이를 사용하여 사용자 입력에서 표시하는 데이터에서 HTML 문자를 피하십시오.yii\web\CsrfToken
구성 요소는 이것을 자동으로 처리합니다. CSRF 보호가 자동으로 포함되어 있으므로 yii\widgets\ActiveForm
사용하십시오.safeAttributes()
메소드를 조심스럽게 정의하여 질량을 할당하기에 안전한 속성을 지정하십시오. YII는 activeRecord를 통해 데이터베이스 상호 작용을 단순화합니다. 사용자 입력을 확인한 후 ActiveRecord의 save()
메소드를 사용하여 데이터를 데이터베이스에 저장할 수 있습니다.
데이터베이스 테이블에 해당하는 Contact
모델이 있다고 가정하면 다음을 수행 할 수 있습니다.
<code class="php">if ($model->load(Yii::$app->request->post()) && $model->validate()) { if ($model->save()) { // Success! Send a confirmation email, etc. } else { // Handle save errors } }</code>
이 코드는 먼저 load()
사용하여 제출 된 데이터를 모델에로드합니다. 그런 다음 데이터를 확인합니다. 유효성 검사가 성공하면 데이터를 데이터베이스에 저장하려고합니다. save()
메소드는 잠재적 인 데이터베이스 오류 처리를 포함하여 데이터베이스 상호 작용을 처리합니다.
클라이언트 측 유효성 검사는 즉각적인 피드백을 제공하여 사용자 경험을 향상시킵니다. YII는이를 달성하기 위해 jQuery와 같은 JavaScript 프레임 워크와 완벽하게 통합됩니다. yii\widgets\ActiveForm
모델의 규칙에 따라 클라이언트 측 유효성 검사 코드를 자동으로 생성합니다.
기본 클라이언트 측 유효성 검사를 위해 추가 코드를 많이 작성할 필요가 없습니다. ActiveForm
대부분을 자동으로 처리합니다. 보다 복잡한 시나리오의 경우 ActiveForm
위젯의 validate()
메소드를 사용하고 사용자 정의 자바 스크립트 함수와 통합하여 클라이언트 측 유효성 검사 로직을 사용자 정의 할 수 있습니다. 그러나 클라이언트 측 유효성 검사는 보충 조치로 간주되어야하며 강력한 서버 측 유효성 검사를 대체하지 않아야합니다.
위 내용은 YII에서 양식으로 작업하고 사용자 입력 유효성 검사를 처리하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!