国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim Backend-Entwicklung PHP-Tutorial php框架yii入門遇到的有關(guān)問題

php框架yii入門遇到的有關(guān)問題

Jun 13, 2016 pm 12:05 PM
array

php框架yii入門遇到的問題

最近在學(xué)習(xí)php 一個(gè)流行的框架yii,聽說封裝得很好,但是在學(xué)習(xí)過程中也遇到了一些問題,先總結(jié)如下:

?

(1)The table "{{tbl_user}}" for active record class "User" cannot be found in the database.

詳細(xì)錯(cuò)誤:

?錯(cuò)誤原因:實(shí)體類User 的方法tableName 返回的是“'{{tbl_user}}'”

/**	 * @return string the associated database table name	 */	public function tableName()	{		return '{{tbl_user}}';	}

?但是在應(yīng)用配置文件(D:\study\yii\yii\demos\shop_goods\protected\config\main.php)中,沒有指定tablePrefix 。

解決方法:

方法一:去掉兩邊的花括號(hào),改為:

/**	 * @return string the associated database table name	 */	public function tableName()	{		return 'tbl_user';	}

?

方法二:在應(yīng)用配置文件(D:\study\yii\yii\demos\shop_goods\protected\config\main.php)中指定

tablePrefix

(2)使用CPasswordHelper::verifyPassword($password,$this->password); 有問題

return CPasswordHelper::verifyPassword($password,$this->password); 有問題,
返回false,但是實(shí)際上$password,$this->password 是相等。

(3)php中調(diào)用成員變量時(shí)使用->,而不是.

有java工作經(jīng)驗(yàn)的開發(fā)者,在使用yii框架時(shí)非常容易使用. 來引用成員變量,這是java的語法,不是php的語法。

?

(4)對(duì)于注冊(cè)頁面,在對(duì)應(yīng)的controller的action方法中,會(huì)使用$_POST['RegisterForm'] 來獲取表單輸入項(xiàng)的值,那么$_POST中的屬性名(如RegisterForm)是由什么決定的呢?

是由render方法的第二個(gè)參數(shù)決定的

?

(5)如何區(qū)分場景

比如用戶注冊(cè)時(shí)需要輸入email和repassword,而用戶登錄時(shí)不需要輸入email和repassword。這就是不同的場景校驗(yàn)的要素不同。如何實(shí)現(xiàn)呢?

在RegisterForm 的rules()方法中

public function rules()	{		return array(			// username and password are required			array('username, password', 'required'),			array('email,repassword', 'required','on'=>'register'),			// rememberMe needs to be a boolean			array('rememberMe', 'boolean','on'=>'login'),			// password needs to be authenticated			array('password', 'authenticate','on'=>'login'),		);	}

?'on'=>'register' 表示在“register”場景中才需要校驗(yàn)。

那么如何選擇場景呢?

在controller 中new RegisterForm 時(shí)指定

$model=new RegisterForm('register');

?

例如

array('username, password', 'required', 'on'=>'login, register'),
array('email', 'required', 'on'=>'register'),
如上所示, username 和password 特性在login 場景中是必填項(xiàng)。而username, password 和email 特性在register 場
景中是必填項(xiàng)。于是,如果我們?cè)趌ogin 場景中執(zhí)行塊賦值,就只有username 和password 會(huì)被塊賦值。因?yàn)橹挥兴?br>們出現(xiàn)在login 的驗(yàn)證規(guī)則中。另一方面,如果場景是register ,這三個(gè)特性就都可以被塊賦值。
// 在登錄場景中
$model=new User('login');
if(isset($_POST['User']))
$model->attributes=$_POST['User'];
// 在注冊(cè)場景中
$model=new User('register');
if(isset($_POST['User']))
$model->attributes=$_POST['User'];

?

?(6)如何批量獲取表單的輸入值

$model->attributes=$_POST['RegisterForm'];

?在一個(gè)類的實(shí)例被創(chuàng)建后,我們通常需要用最終用戶提交的數(shù)據(jù)填充它的特性。這可以通過如下塊賦值( massive
assignment)方式輕松實(shí)現(xiàn):
$model=new LoginForm;
if(isset($_POST['LoginForm']))
$model->attributes=$_POST['LoginForm'];
最后的表達(dá)式被稱作塊賦值(massive assignment) ,它將$_POST['LoginForm'] 中的每一項(xiàng)復(fù)制到相應(yīng)的模型特性
。這相當(dāng)于如下賦值方法:
foreach($_POST['LoginForm'] as $name=>$value)
{
if($name 是一個(gè)安全的特性)
$model->$name=$value;
}

?

(7)表單中的* 是怎么產(chǎn)生的

是$model 中的rules() 方法決定的.

?我們看到郵箱沒有*,那是因?yàn)樵赗egisterForm 的rules() 沒有約束email 是必須的.

public function rules()	{		return array(			// username and password are required			array('username, password', 'required','on'=>'register,login'),			array('repassword', 'required','on'=>'register'),			// rememberMe needs to be a boolean			array('rememberMe', 'boolean','on'=>'login'),			// password needs to be authenticated			array('password', 'authenticate','on'=>'login'),			// 在注冊(cè)場景中,密碼repassword 必須和password 一致。			array('repassword', 'compare', 'compareAttribute'=>'password', 'on'=>'register'),		);	}

?

?

(8)include(authenticate.php): failed to open stream: No such file or directory

有問題的代碼:

?

原因:沒有authenticate()方法

把30注釋掉就好了.

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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Hei?e Themen

PHP-Tutorial
1502
276
Array mit der Array.Sort-Funktion in C# sortieren Array mit der Array.Sort-Funktion in C# sortieren Nov 18, 2023 am 10:37 AM

Titel: Beispiel für die Verwendung der Array.Sort-Funktion zum Sortieren eines Arrays in C#. Text: In C# ist Array eine h?ufig verwendete Datenstruktur, und h?ufig sind Array-Sortiervorg?nge erforderlich. C# stellt die Array-Klasse bereit, die über die Sort-Methode verfügt, um Arrays bequem zu sortieren. In diesem Artikel wird gezeigt, wie Sie ein Array mithilfe der Array.Sort-Funktion in C# sortieren, und es werden spezifische Codebeispiele bereitgestellt. Zun?chst müssen wir die grundlegende Verwendung der Array.Sort-Funktion verstehen. Array.So

Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Einfache und klare Methode zur Verwendung der PHP-Funktion array_merge_recursive() Jun 27, 2023 pm 01:48 PM

Beim Programmieren in PHP müssen wir h?ufig Arrays zusammenführen. PHP stellt die Funktion array_merge() bereit, um die Array-Zusammenführung abzuschlie?en. Wenn jedoch derselbe Schlüssel im Array vorhanden ist, überschreibt diese Funktion den ursprünglichen Wert. Um dieses Problem zu l?sen, stellt PHP in der Sprache auch eine Funktion array_merge_recursive() bereit, die Arrays zusammenführen und die Werte derselben Schlüssel beibehalten kann, wodurch das Programmdesign flexibler wird. array_merge

So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren So verwenden Sie die Funktion array_combine in PHP, um zwei Arrays zu einem assoziativen Array zu kombinieren Jun 26, 2023 pm 01:41 PM

In PHP gibt es viele leistungsstarke Array-Funktionen, die Array-Operationen komfortabler und schneller machen k?nnen. Wenn wir zwei Arrays zu einem assoziativen Array kombinieren müssen, k?nnen wir diese Operation mit der Funktion array_combine von PHP ausführen. Diese Funktion wird tats?chlich verwendet, um die Schlüssel eines Arrays als Werte eines anderen Arrays zu einem neuen assoziativen Array zu kombinieren. Als n?chstes erkl?ren wir, wie man die Funktion array_combine in PHP verwendet, um zwei Arrays zu einem assoziativen Array zu kombinieren. Erfahren Sie mehr über array_comb

Detaillierte Erl?uterung der Verwendung der PHP-Funktion array_fill() Detaillierte Erl?uterung der Verwendung der PHP-Funktion array_fill() Jun 27, 2023 am 08:42 AM

In der PHP-Programmierung ist Array eine sehr wichtige Datenstruktur, die gro?e Datenmengen problemlos verarbeiten kann. PHP bietet viele Array-bezogene Funktionen, array_fill() ist eine davon. In diesem Artikel wird die Verwendung der Funktion array_fill() ausführlich vorgestellt und einige Tipps für praktische Anwendungen gegeben. 1. übersicht über die Funktion array_fill() Die Funktion der Funktion array_fill() besteht darin, ein Array mit demselben Wert und einer angegebenen L?nge zu erstellen. Konkret lautet die Syntax dieser Funktion

Einführung in die Verwendung der PHP-Funktion array_change_key_case() Einführung in die Verwendung der PHP-Funktion array_change_key_case() Jun 27, 2023 am 10:43 AM

In der PHP-Programmierung ist Array ein h?ufig verwendeter Datentyp. Es gibt auch eine ganze Reihe von Array-Operationsfunktionen, einschlie?lich der Funktion array_change_key_case(). Diese Funktion kann die Gro?-/Kleinschreibung von Schlüsselnamen im Array umwandeln, um unsere Datenverarbeitung zu erleichtern. In diesem Artikel wird die Verwendung der Funktion array_change_key_case() in PHP vorgestellt. 1. Funktionssyntax und Parameter array_change_ke

Was sind die h?ufigsten Ursachen für ArrayIndexOutOfBoundsException in Java? Was sind die h?ufigsten Ursachen für ArrayIndexOutOfBoundsException in Java? Jun 24, 2023 pm 10:39 PM

Java ist eine sehr leistungsf?hige Programmiersprache, die in verschiedenen Entwicklungsbereichen weit verbreitet ist. Bei der Java-Programmierung sto?en Entwickler jedoch h?ufig auf ArrayIndexOutOfBoundsException-Ausnahmen. Was sind also die h?ufigsten Ursachen dieser Anomalie? ArrayIndexOutOfBoundsException ist eine h?ufige Laufzeitausnahme in Java. Dies bedeutet, dass beim Zugriff auf Daten der Array-Index den Bereich des Arrays überschreitet. H?ufige Gründe sind:

Wie konvertiert man LinkedList in Java in ein Array? Wie konvertiert man LinkedList in Java in ein Array? Aug 29, 2023 pm 11:09 PM

Die toArray()-Methode der LinkedList-Klasse konvertiert das aktuelle LinkedList-Objekt in ein Array vom Objekttyp und gibt es zurück. Dieses Array enth?lt alle Elemente dieser Liste in der richtigen Reihenfolge (vom ersten bis zum letzten Element). Es fungiert als Brücke zwischen Array-basierten und Sammlungs-basierten APIs. Konvertieren Sie also LinkedList in ein Array und instanziieren Sie die LinkedList-Klasse. Füllen Sie es mit der Methode add(). Rufen Sie die Methode toArray() für die oben erstellte verknüpfte Liste auf und rufen Sie das Array von Objekten ab. Konvertiert jedes Element eines Arrays von Objekten in eine Zeichenfolge. Beispiel Echtzeitdemonstration von importjava.util.Arrays;importjava.uti

L?sung für die ArrayStoreException-Ausnahme in Java L?sung für die ArrayStoreException-Ausnahme in Java Jun 25, 2023 am 08:05 AM

In der Java-Entwicklung verwenden wir aufgrund der Bequemlichkeit und Leistungsvorteile von Arrays h?ufig Arrays zum Speichern einer Reihe von Daten. Bei der Verwendung von Arrays treten jedoch einige Ausnahmen auf, und eine der h?ufigsten Ausnahmen ist ArrayStoreException. Diese Ausnahme wird ausgel?st, wenn wir inkompatible Datentypen im Array speichern. In diesem Artikel wird erl?utert, was eine ArrayStoreException ist, warum sie auftritt und wie sie gel?st werden kann. 1. Arr

See all articles