Heim Backend-Entwicklung PHP-Tutorial Yii不依赖Model的表单生成器用法实例_php实例

Yii不依赖Model的表单生成器用法实例_php实例

Jun 07, 2016 pm 05:14 PM
model yii 生成器 用法 表单

本文实例讲述了Yii不依赖Model的表单生成器用法。分享给大家供大家参考。具体实现方法如下:

默认的Yii的表单生成器只需要这样就可以了:

复制代码 代码如下:
$form = new CForm('application.views.site.loginForm', $model);

这里的application.views.site.loginForm也可以是配置数组。但是如果$model参数不传的话是会报错的:Fatal error: Call to a member function isAttributeSafe()
比如我要生成一个组表单,但是我不想依赖于model,根据配置就可以生成一组表单该怎么办,

默认生成的表单的label是根据$model->attributes来显示的,所以我做了2件事:

1.继承CFormInputElement覆盖renderLabel方法,将label显示成自己配置的element的label

2.继承CForm覆盖renderElement方法,$element instanceof UCFormInputElement,并覆盖render方法,将Elements和getButtons循环输出
直接上代码:
app/protected/extensions/UCForm.php

复制代码 代码如下:
/**
 * @author Ryan
 */
class UCForm extends CForm
{
 public function render()
 {
  $output = $this->renderBegin();
  foreach ($this->getElements() as $element)
  {
   $output .= $element->render();
  }
  foreach ($this->getButtons() as $button)
  {
   $output .= $button->render();
  }
  $output .= $this->renderEnd();
  return $output;
 }
 public function renderElement($element)
 {
  if (is_string($element))
  {
   if (($e = $this[$element]) === null && ($e = $this->getButtons()->itemAt($element)) === null)
    return $element;
   else
    $element = $e;
  }
  if ($element->getVisible())
  {
   //UCFormInputElement 代替 CFormInputElement
   if ($element instanceof UCFormInputElement)
   {
    if ($element->type === 'hidden')
     return "
n" . $element->render() . "
n";
    else
     return "
n" . $element->render() . "
n";
   }
   else if ($element instanceof CFormButtonElement)
    return $element->render() . "n";
   else
    return $element->render();
  }
  return '';
 }
}

再来个简单的调用示例:
复制代码 代码如下:
/**
 * @author Ryan
 */
class PlayerSearchController extends Controller
{
 public function actionIndex()
 {
  $config = array(
      'class' => 'ddd',
      'action'=>'',
      'elements' => array(
   '

',
   'username' => array(
       'label'=>'用户名啊',//注意这里的label
       'type' => 'text',
       'maxlength' => 32,
       'value' => ''
   ),
   '

',
   'password' => array(
       'label'=>'昵称啊',//注意这里的label
       'type' => 'password',
       'maxlength' => 32,
       'value' => ''
   ),
      ),
      'buttons' => array(
   'login' => array(
       'type' => 'submit',
       'label' => 'Login',
   ),
      ),
  );
  $model = new CFormModel();
  $form = new UCForm($config, $model);
  $this->render('index', compact('form'));
 }
}

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Analysieren Sie die Verwendung und Klassifizierung von JSP-Kommentaren Analysieren Sie die Verwendung und Klassifizierung von JSP-Kommentaren Feb 01, 2024 am 08:01 AM

Klassifizierung und Verwendungsanalyse von JSP-Kommentaren JSP-Kommentare werden in zwei Typen unterteilt: einzeilige Kommentare: Mit der Endung kann nur eine einzelne Codezeile kommentiert werden. Mehrzeilige Kommentare: Beginnend mit /* und endend mit */ können Sie mehrere Codezeilen kommentieren. Beispiel für einen einzeiligen Kommentar Beispiel für einen mehrzeiligen Kommentar/**Dies ist ein mehrzeiliger Kommentar*Kann mehrere Codezeilen kommentieren*/Verwendung von JSP-Kommentaren JSP-Kommentare können zum Kommentieren von JSP-Code verwendet werden, um ihn leichter lesbar zu machen

So verwenden Sie die Exit-Funktion in der C-Sprache richtig So verwenden Sie die Exit-Funktion in der C-Sprache richtig Feb 18, 2024 pm 03:40 PM

Für die Verwendung der Exit-Funktion in der C-Sprache sind bestimmte Codebeispiele erforderlich. In der C-Sprache müssen wir häufig die Ausführung des Programms zu Beginn des Programms beenden oder das Programm unter bestimmten Bedingungen beenden. Die C-Sprache stellt die Funktion „exit()“ zur Implementierung dieser Funktion bereit. In diesem Artikel wird die Verwendung der Funktion „exit()“ vorgestellt und entsprechende Codebeispiele bereitgestellt. Die Funktion „exit()“ ist eine Standardbibliotheksfunktion in der Sprache C und in der Header-Datei enthalten. Seine Funktion besteht darin, die Ausführung des Programms zu beenden und kann eine Ganzzahl annehmen

Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Nov 03, 2023 pm 02:57 PM

Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Der Student Performance Report Generator ist ein Tool, das Lehrern und Erziehern dabei hilft, schnell Berichte über die Schülerleistung zu erstellen. In diesem Artikel wird erläutert, wie Sie mit Java einen einfachen Generator für Schülerleistungsberichte schreiben. Zuerst müssen wir das Studentenobjekt und das Studentennotenobjekt definieren. Das Schülerobjekt enthält grundlegende Informationen wie den Namen und die Schülernummer des Schülers, während das Schülerergebnisobjekt Informationen wie die Fachnoten und die Durchschnittsnote des Schülers enthält. Das Folgende ist die Definition eines einfachen Studentenobjekts: öffentlich

Verwendung der WPSdatedif-Funktion Verwendung der WPSdatedif-Funktion Feb 20, 2024 pm 10:27 PM

WPS ist eine häufig verwendete Office-Software-Suite und die WPS-Tabellenfunktion wird häufig für die Datenverarbeitung und Berechnungen verwendet. In der WPS-Tabelle gibt es eine sehr nützliche Funktion, die DATEDIF-Funktion, die zur Berechnung der Zeitdifferenz zwischen zwei Datumsangaben verwendet wird. Die DATEDIF-Funktion ist die Abkürzung des englischen Wortes DateDifference. Ihre Syntax lautet wie folgt: DATEDIF(start_date,end_date,unit) wobei start_date das Startdatum darstellt.

Wie realisiert man mit JavaScript die automatische Eingabeaufforderungsfunktion für den Inhalt des Eingabefelds des Formulars? Wie realisiert man mit JavaScript die automatische Eingabeaufforderungsfunktion für den Inhalt des Eingabefelds des Formulars? Oct 20, 2023 pm 04:01 PM

Wie realisiert man mit JavaScript die automatische Eingabeaufforderungsfunktion für den Inhalt des Eingabefelds des Formulars? Einführung: Die automatische Eingabeaufforderungsfunktion für den Inhalt des Formulareingabefelds ist in Webanwendungen weit verbreitet. Sie kann Benutzern dabei helfen, schnell den richtigen Inhalt einzugeben. In diesem Artikel wird erläutert, wie Sie diese Funktion mithilfe von JavaScript erreichen, und es werden spezifische Codebeispiele bereitgestellt. Erstellen Sie die HTML-Struktur. Zuerst müssen wir eine HTML-Struktur erstellen, die das Eingabefeld und die Liste der automatischen Vorschläge enthält. Sie können den folgenden Code verwenden: <!DOCTYP

Bester kostenloser KI-Animationskunstgenerator Bester kostenloser KI-Animationskunstgenerator Feb 19, 2024 pm 10:50 PM

Wenn Sie den besten kostenlosen Generator für KI-Animationskunst suchen, können Sie Ihre Suche beenden. Die Welt der Anime-Kunst fasziniert das Publikum seit Jahrzehnten mit ihren einzigartigen Charakterdesigns, faszinierenden Farben und fesselnden Handlungen. Allerdings erfordert die Erstellung von Anime-Kunst Talent, Geschick und viel Zeit. Dank der kontinuierlichen Weiterentwicklung der künstlichen Intelligenz (KI) können Sie jetzt mithilfe des besten kostenlosen KI-Animationskunstgenerators die Welt der Animationskunst erkunden, ohne sich mit komplexen Technologien befassen zu müssen. Dies eröffnet Ihnen neue Möglichkeiten, Ihrer Kreativität freien Lauf zu lassen. Was ist ein KI-Generator für Anime-Kunst? Der AI Animation Art Generator nutzt hochentwickelte Algorithmen und Techniken des maschinellen Lernens, um eine umfangreiche Datenbank mit Animationswerken zu analysieren. Durch diese Algorithmen lernt und identifiziert das System verschiedene Animationsstile

Einführung in Python-Funktionen: Verwendung und Beispiele der isinstance-Funktion Einführung in Python-Funktionen: Verwendung und Beispiele der isinstance-Funktion Nov 04, 2023 pm 03:15 PM

Einführung in Python-Funktionen: Verwendung und Beispiele der isinstance-Funktion Python ist eine leistungsstarke Programmiersprache, die viele integrierte Funktionen bereitstellt, um das Programmieren komfortabler und effizienter zu gestalten. Eine der sehr nützlichen integrierten Funktionen ist die Funktion isinstance(). In diesem Artikel werden die Verwendung und Beispiele der Funktion isinstance vorgestellt und spezifische Codebeispiele bereitgestellt. Mit der Funktion isinstance() wird ermittelt, ob ein Objekt eine Instanz einer bestimmten Klasse oder eines bestimmten Typs ist. Die Syntax dieser Funktion ist wie folgt

Ausführliche Erklärung und Einführung in die Verwendung der MySQL-ISNULL-Funktion Ausführliche Erklärung und Einführung in die Verwendung der MySQL-ISNULL-Funktion Mar 01, 2024 pm 05:24 PM

Die Funktion ISNULL() in MySQL ist eine Funktion, mit der ermittelt wird, ob ein angegebener Ausdruck oder eine angegebene Spalte NULL ist. Es gibt einen booleschen Wert zurück, 1, wenn der Ausdruck NULL ist, andernfalls 0. Die Funktion ISNULL() kann in der SELECT-Anweisung oder zur bedingten Beurteilung in der WHERE-Klausel verwendet werden. 1. Die grundlegende Syntax der Funktion ISNULL(): ISNULL(Ausdruck), wobei Ausdruck der Ausdruck ist, um zu bestimmen, ob er NULL ist oder

See all articles