사용자가 데이터를 제출할 수 있는 양식 페이지를 만드는 방법. 페이지에는 이름 입력 상자와 이메일 입력 상자가 포함된 양식이 표시됩니다. 이 두 가지 정보 부분을 제출하면 페이지에 사용자가 입력한 정보가 표시됩니다. (추천 학습: yii 프레임워크)
이 목표를 달성하려면 오퍼레이션과 뷰 2개를 생성하는 것 외에도 모델을 생성해야 합니다.
이 튜토리얼을 통해 배울 내용은 다음과 같습니다.
사용자가 양식을 통해 입력한 데이터를 나타내는 모델 만들기
입력한 데이터의 유효성을 검사하는 규칙 선언
뷰에서 HTML 양식 생성
만들기 the model
모델 클래스인 EntryForm은 사용자가 요청한 데이터를 나타내며, 해당 클래스는 models/EntryForm.php 파일에 저장됩니다.
<?php namespace app\models; use Yii; use yii\base\Model; class EntryForm extends Model { public $name; public $email; public function rules() { return [ [['name', 'email'], 'required'], ['email', 'email'], ]; } }
이 클래스는 일반적으로 데이터를 표현하는 데 사용되는 Yii에서 제공하는 기본 클래스 yiibaseModel을 상속합니다.
信息: yii\base\Model 被用于普通模型类的父类并与数据表无关。yii\db\ActiveRecord 通常是普通模型类的父类但与数据表有关联(译注:yii\db\ActiveRecord 类其实也是继承自 yii\base\Model,增加了数据库处理)。
EntryForm 클래스에는 사용자가 입력한 데이터를 저장하는 데 사용되는 이름과 이메일이라는 두 개의 공개 멤버가 포함되어 있습니다. 또한 데이터 유효성 검사 규칙 모음을 반환하는 rule()이라는 메서드도 포함되어 있습니다. 위에 선언된 유효성 검사 규칙은 다음을 나타냅니다.
name 및 email 값은 모두 필수입니다.
email 값은 이메일 규칙 확인을 충족해야 합니다.
사용자가 제출한 데이터를 처리하는 EntryForm 개체가 있는 경우 해당 유효성 검사( ) 메서드 트리거 데이터 유효성 검사. 데이터 검증이 실패하면 hasErrors 속성이 true로 설정됩니다. 어떤 오류가 발생했는지 알고 싶다면 getErrors를 호출하세요.
<?php $model = new EntryForm(); $model->name = 'Qiang'; $model->email = 'bad'; if ($model->validate()) { // 验证成功! } else { // 失败! // 使用 $model->getErrors() 获取错误详情 }
Create Action
다음으로 새 모델에 대한 사이트 컨트롤러에서 항목 작업을 생성해야 합니다.
<?php namespace app\controllers; use Yii; use yii\web\Controller; use app\models\EntryForm; class SiteController extends Controller { // ...现存的代码... public function actionEntry() { $model = new EntryForm; if ($model->load(Yii::$app->request->post()) && $model->validate()) { // 验证 $model 收到的数据 // 做些有意义的事 ... return $this->render('entry-confirm', ['model' => $model]); } else { // 无论是初始化显示还是数据验证错误 return $this->render('entry', ['model' => $model]); } } }
이 작업은 먼저 EntryForm 개체를 생성합니다. 그런 다음 Yii의 yiiwebRequest::post() 메소드에 의해 수집되는 $_POST에서 사용자가 제출한 데이터를 수집해 보세요. 모델이 데이터로 성공적으로 채워지면(즉, 사용자가 HTML 양식을 제출한 경우) 작업에서는 사용자가 유효한 데이터를 제출했는지 확인하기 위해 verify()를 호출합니다.
信息: 表达式 Yii::$app 代表应用实例,它是一个全局可访问的单例。 同时它也是一个服务定位器, 能提供 request,response,db 等等特定功能的组件。 在上面的代码里就是使用 request 组件来访问应用实例收到的 $_POST 数据。
사용자가 양식을 제출한 후 작업은 사용자가 입력한 데이터를 확인하기 위해 항목 확인이라는 뷰를 렌더링합니다. 양식을 작성하지 않고 제출한 경우 또는 데이터에 오류가 포함된 경우(번역자: 예를 들어 이메일 형식이 올바르지 않은 경우) 항목 보기는 양식 및 유효성 검사 오류의 세부 정보와 함께 출력을 렌더링합니다.
참고: 이 간단한 예에서는 유효한 데이터가 있는 확인 페이지만 표시합니다. 실제로 반복되는 양식 제출 문제를 피하기 위해 새로 고침() 또는 리디렉션() 사용을 고려해야 합니다.
뷰 생성 ?
마지막으로 두 개의 뷰 파일 항목 확인 및 항목을 만듭니다. 방금 생성된 항목 작업에 의해 렌더링됩니다.
입력 확인 보기에는 제출된 이름과 이메일 데이터만 표시됩니다. 보기 파일은 views/site/entry-confirm.php에 저장되어야 합니다.
<?php use yii\helpers\Html; ?> <p>You have entered the following information:</p> <ul> <li><label>Name</label>: <?= Html::encode($model->name) ?></li> <li><label>Email</label>: <?= Html::encode($model->email) ?></li> </ul>
항목 보기에는 HTML 양식이 표시됩니다. 보기 파일은 views/site/entry.php에 저장되어야 합니다.
<?php use yii\helpers\Html; use yii\widgets\ActiveForm; ?> <?php $form = ActiveForm::begin(); ?> <?= $form->field($model, 'name') ?> <?= $form->field($model, 'email') ?> <div class="form-group"> <?= Html::submitButton('Submit', ['class' => 'btn btn-primary']) ?> </div> <?php ActiveForm::end(); ?>
브라우저에서 다음 URL로 이동하여 작동하는지 확인하세요.
http://hostname/index.php?r=site/entry
두 개의 입력 상자가 포함된 양식이 있는 페이지가 표시됩니다. 각 입력 상자 앞에는 입력해야 하는 데이터 유형을 나타내는 레이블이 있습니다. 아무것도 작성하지 않고 제출 버튼을 클릭하거나 이메일 주소를 잘못된 형식으로 입력하면 해당 입력란 아래에 오류 메시지가 표시됩니다.
유효한 이름과 이메일 정보를 입력하고 제출하면 제출한 데이터를 보여주는 확인 페이지가 나타납니다.
위 내용은 yii 프레임워크에서 양식을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!