Inhaltsverzeichnis
Yii2的相关学习记录,初始化Yii2(二),初始化yii2
Heim php教程 php手册 Yii2的相关学习记录,初始化Yii2(二),初始化yii2

Yii2的相关学习记录,初始化Yii2(二),初始化yii2

Jun 13, 2016 am 08:43 AM
初始化

Yii2的相关学习记录,初始化Yii2(二),初始化yii2

前面已经将Yii2下载下来了,那我们就需要能实际的使用。

一、初始化,因为我都是在windows系统下,所以用cmd命令打开下载下来的Yii2的根目录。然后运行下面命令:

init
Nach dem Login kopieren

会提示选择0为开发环境,1为生成环境。一般选生产环境。后期可以同样输入此命令来切换开发环境和生产环节,但是需要注意切换时需要提前在“environments”目录中中提前写好生产环境的配置,以免切换时覆盖丢失配置项,后面还会说,现在继续往下走。

二、配置数据库,现在前台访问地址为:http://localhost/vishun/backend/web/index.php,后台访问地址为:http://localhost/vishun/frontend/web/index.php,其中vishun是我Yii框架安装的目录名称。现在访问时会报数据库连接的错误,因为数据库没有连接上,所以,我们需要先创建一个数据库(个人比较喜欢用phpmyadmin),然后在Yii2中配置数据库参数:

配置文件在三个地方存在,common/config,frontend/config,backend/config,一般来说common是放前后台都会用到的配置文件,而frontend和backend则是放各自的配置文件,如果重复,则前后台的会覆盖公用的。

每个文件夹下又分为main.php和main-local.php,这主要是为了团队协作,一般团队成员都在自己的电脑环境下开发,然后提交到git或svn上。所以团队成员用自己的数据库账号密码什么的,如果提交上去,其它团队成员更新下来和自己的账号密码不对,就会产生错误,所以数据库等配置文件放在*-local文件中,提交时*-local的文件不提交。

但是如果不提交还是会有问题,像是一个新成员加入,直接从git上下载代码下来,但是数据库配置文件由于所有人都没有提交,整个程序不完整,那就导致新成员根本就没有数据库的配置。所以这里还需要用到上方提到过的environments目录,这里面有dev(开发)和prod(生产)两种环境,主要是存储*-local文件的模板。在使用init命令时,就会根据这里面的文件来生成*-local文件,然后新成员在文件中填上自己的数据库账号密码就可以使用了。

以上团队环境详细说明可以看这里:深入理解Yii2.0--环境和配置文件,说的非常详细。

三、配置完成后就可以,还是会报错,但不是报数据链接的错误了,而是user表没有找到。那我们就创建user表。Yii2高级版框架中user表已经写好了,可以打开console/migrations下有*_init.php文件,这个就是写好的user表。只需在cmd中Yii2根目录下运行命令:

yii migrate
Nach dem Login kopieren

这样user表就创建好了。这时访问前后台都OK了。migrate命令是Yii框架迁移或者修改数据库的工具,尤其的在团队协作中,如果成员在本地电脑上增加了一张表,如何告知其它成员呢,用yii migrate/create命令就可在console/migrations创建一个改动,然后就增加的表内容写在里面,提交后其它成员更新后,用yii migrate命令,即可将自己的数据库同步到最新的,绝对是十分方便。migrate功能还很多,自己也没完全弄清楚呢,可能在下面的前后台分离章节中还会说。

四、顺便说下配置邮箱吧。完成前三步功能时,就可以注册个会员看看,当忘记密码时,则在登录界面点击忘记密码,需要通过邮件来找回,所以我们需要配置下邮箱:

Yii2高级版框架中是集成了邮箱类的,在common/config/main-local.php文件可以看到:

'mailer' =><span> [
    </span>'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',<span>
]</span>,
Nach dem Login kopieren

这就是相关的配置文件,之所以放到*-local文件中,因为包含个人账号的敏感信息。

上面的配置信息是不全的,需要填写发件邮箱,端口号什么的,所以修改上面为:

'mailer' =><span> [
    </span>'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',
    <span>//</span><span> send all mails to a file by default. You have to set
    // 'useFileTransport' to false and configure a transport
    // for the mailer to send real emails.</span>
    'useFileTransport' => <span>false</span>,
    'transport' =><span> [  
        </span>'class' => 'Swift_SmtpTransport',  
        'host' => 'smtp.163.com', <span>//</span><span>我这里用163邮箱 </span>
        'username' => '你的邮箱名',  
        'password' => '你的邮箱密码',  
        'port' => '25',  
        'encryption' => 'tls',<span>
    ]</span>,
Nach dem Login kopieren
<code class="hljs dart"><span class="hljs-string">  //'messageConfig'=>[  
   //  <span class="hljs-string">'charset'=><span class="hljs-string">'UTF-8',  
   //  <span class="hljs-string">'from'=>[<span class="hljs-string">'你的邮箱名'=><span class="hljs-string">'robot']  
   //],  </span></span></span></span></span></span></code><span>           
]</span>,        
Nach dem Login kopieren

而发送邮件的整个流程方法在Yii2高级版中都写好了,所以只需要配置就能发送了。

配置完上方后,可能找回密码发送邮件是应该还会报错,类似这种:

Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user
Nach dem Login kopieren

这是因为有些邮件服务器要求from和username必须一直,例如网易的服务器,而在frontend/models/PasswordResetRequestForm.php中的sendEmail方法规定在63行左右,

 ->setFrom([\Yii::<span>$app</span>->params['supportEmail'] => \Yii::<span>$app</span>->name . ' robot'])
Nach dem Login kopieren

From是取得supportEmail参数,这个参数在common/config/params.php中定义了默认为:admin@example.com,配置文件中的邮箱名和这个不符合所以报错。方法一是把这个参数改成‘你的邮箱名’就可以正常发送了;方法二是将上方配置文件<span class="hljs-string">messageConfig</span>注释的取消,然后->setFrom这行删除掉。(所有的这些首先确保先开通smtp服务)

顺便说下,因为你邮箱配置实在*-local文件中,所以为了其它成员也都能用你这个配置,应该在environments/dev/common/main-local.php中添加:

'mailer' =><span> [
    </span>'class' => 'yii\swiftmailer\Mailer',
    'viewPath' => '@common/mail',
    <span>//</span><span> send all mails to a file by default. You have to set
    // 'useFileTransport' to false and configure a transport
    // for the mailer to send real emails.</span>
    'useFileTransport' => <span>false</span>,
    'transport' =><span> [  
        </span>'class' => 'Swift_SmtpTransport',  
        'host' => '', <span>//</span><span>空着,让其他人自己填写</span>
        'username' => '',  
        'password' => '',  
        'port' => '',  
        'encryption' => 'tls',<span>
    ]</span>,

    'messageConfig'=><span>[  
    </span>'charset'=>'UTF-8',  
    'from'=>[''=>'robot'<span>]  
    ]</span>,<span>             
]</span>,        
Nach dem Login kopieren

这样,其他人只需要填上自己的邮箱账号就可以发送邮件了。

很多时候邮件填写都是从数据库获取的,这时候就不应该在配置文件中了,而是应该单独写个类,(类似新建components文件并引入,写在这里面),顺便封装下发送方法。我自己也没实习过,只是思路而已。

以上就是Yii2高级版的初始化,下节可能记录下如何套用好看的后台界面和gii自定义模板什么的。睡觉了先。

 

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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
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)

Windows kann den Gerätetreiber für diesen Hardware-Fix (Code 37) nicht initialisieren Windows kann den Gerätetreiber für diesen Hardware-Fix (Code 37) nicht initialisieren Apr 14, 2023 pm 01:22 PM

Wenn Windows erkennt, dass der Treiber eines Geräts inkompatibel oder beschädigt ist, kann es ihn nicht initialisieren. Das Gerät funktioniert nicht mehr und wenn der Benutzer nachforscht, wird im Bereich „Gerätestatus“ die Fehlermeldung „Windows kann den Gerätetreiber für diese Hardware nicht initialisieren (Code 37)“ angezeigt. Die Lösung dieses Problems ist einfach und Sie können es leicht tun. Fix 1 – Scannen Sie Ihren Computer Sie können Ihr Gerät auf Hardwareänderungen scannen. Windows wird schließlich alle Treiberänderungen prüfen und erkennen. 1. Sie müssen nur mit der rechten Maustaste auf die „Windows-Taste“ klicken und auf „Geräte-Manager“ klicken. 2. Wenn der Geräte-Manager auf Ihrem System angezeigt wird, klicken Sie in der Menüleiste auf Aktionen. 3. Hier,

FIX: Windows kann den Gerätetreiber für diese Hardware nicht initialisieren FIX: Windows kann den Gerätetreiber für diese Hardware nicht initialisieren Apr 13, 2023 pm 01:19 PM

Fehlercode 37 bedeutet, dass Windows ein Problem mit dem Gerätetreiber erkannt hat und das Hardwaregerät nicht starten kann. Dies bedeutet, dass der Software-Gerätetreiber nicht korrekt auf Ihrem System installiert ist oder die Hardware, die Sie verwenden möchten, nicht mit Windows kompatibel ist. Sie wissen bereits, dass Treiber für die reibungslose Funktion Ihres Geräts von entscheidender Bedeutung sind. Wenn Sie also ein Hardwaregerät verwenden, müssen Sie diesen Fehler sofort beheben. In diesem Artikel zeigen wir Ihnen verschiedene Möglichkeiten, diesen Fehler zu umgehen. Was verursacht den Windows-Fehlercode 37? Wenn Sie Folgendes erhalten: Windows kann den Gerätetreiber für diese Hardware nicht initialisieren. (Code 37) Meldung, kann dies durch verschiedene Probleme verursacht werden, darunter: Kompatibilitätsprobleme – wenn Sie eine Festplatte hinzufügen

Was tun, wenn die Initialisierungsroutine der Dynamic Link Library fehlschlägt? Was tun, wenn die Initialisierungsroutine der Dynamic Link Library fehlschlägt? Dec 29, 2023 am 10:30 AM

Lösung: 1. Installieren Sie die Anwendung neu. 3. Systemwiederherstellung oder Checkpoint-Wiederherstellung. 5. Überprüfen Sie die Startelemente und Dienste. Überprüfen Sie die offizielle Dokumentation oder Foren. 8. Erwägen Sie Sicherheitssoftware. 9. Überprüfen Sie die Ereignisanzeige. 10. Suchen Sie Hilfe von Experten.

So initialisieren Sie den Computer unter Win7 So initialisieren Sie den Computer unter Win7 Jan 07, 2024 am 11:53 AM

Das Win7-System ist ein hervorragendes Hochleistungssystem. Während der kontinuierlichen Nutzung von Win7 fragen sich viele Freunde, wie man den Computer in Win7 initialisiert. Heute zeigt Ihnen der Editor, wie Sie die Werkseinstellungen auf einem Win7-Computer wiederherstellen. Verwandte Informationen zur Initialisierung des Computers in Win7: Detaillierte Anweisungen mit Bildern und Text. Schritte: 1. Öffnen Sie das „Startmenü“ und geben Sie es ein. 2. Klicken Sie unten links, um die Einstellungen einzugeben. 3. Wählen Sie in der Benutzeroberfläche der Win10-Aktualisierungs- und Wiederherstellungseinstellungen die Option aus. 4. Klicken Sie unten auf „Alle Inhalte entfernen und Windows neu installieren“. 5. Sie können die folgenden „Initialisierungs“-Einstellungen sehen und dann auf klicken. 6. Geben Sie die Einstellungsoption „Ihr Computer verfügt über mehrere Laufwerke“ ein. Hier gibt es zwei Optionen, die Sie je nach Situation auswählen können.

Behebung: Grafiksystemfehler konnte auf dem PC nicht initialisiert werden Behebung: Grafiksystemfehler konnte auf dem PC nicht initialisiert werden Mar 08, 2024 am 09:55 AM

Viele Spieler sind mit dem frustrierenden Problem konfrontiert, dass das Spiel das Grafiksystem nicht initialisieren konnte. In diesem Artikel gehen wir auf die häufigsten Gründe für dieses Problem ein und finden einfache, aber effektive Lösungen, mit denen Sie im Handumdrehen wieder auf dem Brett landen und das Level meistern können. Wenn Sie also in Rollercoaster Tycoon, Assassin’s Creed, Tony Hawk’s Pro Skater usw. die Fehlermeldung „Grafiksystem konnte nicht initialisiert werden“ erhalten, befolgen Sie die in diesem Artikel genannten Lösungen. Initialisierungsfehler Das Grafiksystem konnte nicht initialisiert werden. Grafikkarten werden nicht unterstützt. Beheben Sie die Fehlermeldung „Das Grafiksystem konnte nicht initialisiert werden“. Um den Fehler „Das Grafiksystem konnte nicht initialisiert werden“ in Spielen wie Rollercoaster Tycoon, Assassin’s Creed, Tony Hawk’s Pro Skater usw. zu beheben, können Sie die folgenden Problemumgehungen ausprobieren: Aktualisieren Sie Ihren Grafikkartentreiber Kompatibilitätsmodus

So setzen Sie die Netzwerkeinstellungen von Win7 zurück So setzen Sie die Netzwerkeinstellungen von Win7 zurück Dec 26, 2023 pm 06:51 PM

Das Win7-System ist ein sehr hervorragendes Hochleistungssystem. Viele Freunde des Win7-Systems suchen nach einer Möglichkeit, die Netzwerkeinstellungen in Win7 zu initialisieren. Werfen wir einen Blick darauf beim Tutorial. Ausführliches Tutorial zum Initialisieren der Netzwerkeinstellungen in Win7: Grafische Schritte: 1. Klicken Sie auf das Menü „Start“, suchen und öffnen Sie die „Systemsteuerung“ und klicken Sie dann auf „Netzwerk- und Freigabecenter“. 2. Suchen Sie dann nach „Adaptergerät ändern“ und klicken Sie darauf. 3. Klicken Sie anschließend im sich öffnenden Fenster mit der rechten Maustaste auf „Lokale Verbindung“ und dann auf „Eigenschaften“. 4. Suchen Sie nach dem Öffnen nach „Internet Protocol Version (TCP/IPv4)“ und verdoppeln Sie es

C++-Programminitialisierungswörterbuch C++-Programminitialisierungswörterbuch Sep 09, 2023 pm 07:01 PM

C++ unterscheidet sich von Python durch ein Wörterbuch mit demselben Namen, verfügt jedoch über dieselbe Datenstruktur mit ähnlicher Funktionalität. C++ unterstützt Mapping, das in der STL-Klasse std::map verwendet werden kann. Das Kartenobjekt enthält in jedem Eintrag ein Wertepaar, einer ist der Schlüsselwert und der andere ist der Kartenwert. Mithilfe von Schlüsselwerten werden Einträge in der Karte gesucht und eindeutig identifiziert. Während zugeordnete Werte nicht unbedingt eindeutig sind, müssen Schlüsselwerte in der Karte immer eindeutig sein. Werfen wir einen Blick auf die Verwendung von Mapping. Sehen wir uns zunächst an, wie man eine zugeordnete Datenstruktur in C++ definiert. Syntax #includemap<data_type1,data_type2>myMap; Nehmen wir ein Beispiel, um zu sehen, wie das geht – Beispiel #incl

Fix: Neue SSD wird in Windows 11, 10 nicht angezeigt Fix: Neue SSD wird in Windows 11, 10 nicht angezeigt Apr 14, 2023 pm 02:52 PM

SSDs haben die Welt der Technologie revolutioniert. Diese Datenspeicherlösungen mit ihren ultraschnellen und beispiellosen Lese-/Schreibgeschwindigkeiten wecken bei jedem Benutzer den Wunsch, sein Systembetriebssystem darauf zu installieren. Was aber, wenn Ihre neue SSD nicht auf Ihrem Windows-Gerät angezeigt wird? Dies ist ein typisches Problem, das auftreten kann, wenn eine brandneue SSD an Ihr System angeschlossen ist. Mach dir keine Sorge. Wir haben gerade die richtige Lösung gefunden. Sie müssen nur diese Schritte befolgen und Ihre SSD ist in kürzester Zeit wieder in Ihrem Datei-Explorer. Lösung – 1. Überprüfen Sie die SSD-Verbindung. Wenn Sie einen USB-Hub verwenden, schließen Sie die SSD direkt an Ihr System an. Überprüfen Sie die Anschlüsse der SSD auf physische Mängel.

See all articles