Yii2的相关学习记录,初始化Yii2(二),初始化yii2
Yii2的相关学习记录,初始化Yii2(二),初始化yii2
前面已经将Yii2下载下来了,那我们就需要能实际的使用。
一、初始化,因为我都是在windows系统下,所以用cmd命令打开下载下来的Yii2的根目录。然后运行下面命令:
init
会提示选择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
这样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>,
这就是相关的配置文件,之所以放到*-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>,
<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>,
而发送邮件的整个流程方法在Yii2高级版中都写好了,所以只需要配置就能发送了。
配置完上方后,可能找回密码发送邮件是应该还会报错,类似这种:
Expected response code 250 but got code "553", with message "553 Mail from must equal authorized user
这是因为有些邮件服务器要求from和username必须一直,例如网易的服务器,而在frontend/models/PasswordResetRequestForm.php中的sendEmail方法规定在63行左右,
->setFrom([\Yii::<span>$app</span>->params['supportEmail'] => \Yii::<span>$app</span>->name . ' robot'])
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>,
这样,其他人只需要填上自己的邮箱账号就可以发送邮件了。
很多时候邮件填写都是从数据库获取的,这时候就不应该在配置文件中了,而是应该单独写个类,(类似新建components文件并引入,写在这里面),顺便封装下发送方法。我自己也没实习过,只是思路而已。
以上就是Yii2高级版的初始化,下节可能记录下如何套用好看的后台界面和gii自定义模板什么的。睡觉了先。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Windows は、デバイスのドライバーに互換性がないこと、または破損していることを検出すると、それを初期化できません。デバイスが動作を停止し、ユーザーが調査すると、「Windows はこのハードウェアのデバイス ドライバーを初期化できません (コード 37)」というエラー メッセージが [デバイス ステータス] ペインに表示されます。この問題を解決するのは簡単で、簡単に実行できます。解決策 1 – コンピューターをスキャンする ハードウェアの変更がないかデバイスをスキャンできます。 Windows は最終的にドライバーの変更を確認し、検出します。 1. 「Windows キー」を右クリックし、「デバイス マネージャー」をクリックするだけです。 2. システムにデバイス マネージャーが表示されたら、メニュー バーの [アクション] をクリックします。 3. ここで、

エラー コード 37 は、Windows がデバイス ドライバーの問題を検出し、ハードウェア デバイスを起動できないことを意味します。これは、ソフトウェア デバイス ドライバーがシステムに正しくインストールされていないか、使用しようとしているハードウェアが Windows と互換性がないことを意味します。ドライバーがデバイスのスムーズな機能に重要であることはすでにご存知のとおり、ハードウェア デバイスを使用する場合は、このエラーをすぐに解決する必要があります。この記事では、このエラーを回避するさまざまな方法を紹介します。 Windows エラー コード 37 の原因は何ですか? Windows がこのハードウェアのデバイス ドライバーを初期化できない場合。 (コード 37) メッセージが表示される場合、次のようないくつかの問題が原因で発生する可能性があります。 互換性の問題 – ハードウェアを追加した場合

解決策: 1. アプリケーションを再インストールします; 2. DLL を修復または再インストールします; 3. システムの復元またはチェックポイントの回復; 4. システム ファイル チェッカー (SFC) を使用してスキャンします; 5. スタートアップ項目とサービスを確認します; 6. ツールを使用します; 7.公式ドキュメントやフォーラムを確認する; 8. セキュリティ ソフトウェアを検討する; 9. イベント ビューアを確認する; 10. 専門家の助けを求めるなど。

win7 システムは非常に優れた高性能システムであり、win7 を継続的に使用していると、多くの友人が win7 でコンピュータを初期化する方法を尋ねてきます。今日は、エディターが win7 コンピューターの工場出荷時の設定を復元する方法を紹介します。 win7 でコンピュータを初期化する方法に関する関連情報: 画像とテキストによる詳細な手順 手順: 1. 「スタート メニュー」を開いて入ります。 2. 左側の下部をクリックして設定を入力します。 3. Win10 の更新と回復の設定インターフェイスで、選択します。 4. 以下の「すべてのコンテンツを削除して Windows を再インストールする」をクリックします。 5. 以下の「初期化」設定が表示されるので、クリックします。 6. 「コンピュータには複数のドライブがあります」設定オプションを入力します ここには 2 つのオプションがあり、状況に応じて選択できます。

多くのゲーマーは、ゲームがグラフィックス システムの初期化に失敗するというイライラする問題に遭遇したことがあります。この記事では、この問題の背後にある一般的な理由を詳しく掘り下げ、すぐにボードに戻ってレベルをクリアできるシンプルかつ効果的な解決策を見つけます。したがって、Rollercoaster Tycoon、Assassin’s Creed、Tony Hawk’s Pro Skater などで「グラフィック システムを初期化できません」というエラー メッセージが表示される場合は、この記事で説明されている解決策に従ってください。初期化エラー グラフィックス システムを初期化できません。グラフィックカードはサポートされていません。グラフィックス システムを初期化できないエラー メッセージを修正する Rollercoaster Tycoon、Assassin's Creed、Tony Hawk's Pro Skater などのゲームでのグラフィックス システムを初期化できないエラー メッセージを解決するには、次の回避策を試すことができます。互換モード

win7 システムは非常に優れた高性能システムです。最近、多くの win7 システムの友人が win7 のネットワーク設定を初期化する方法を探しています。今日は、エディターが win7 コンピュータのネットワーク初期化の詳細を紹介します。見てみましょう。チュートリアルを見てください。 win7 でネットワーク設定を初期化する方法に関する詳細なチュートリアル: グラフィカルな手順: 1. [スタート] メニューをクリックし、[コントロール パネル] を見つけて開き、[ネットワークと共有センター] をクリックします。 2. 次に、「アダプターデバイスの変更」を見つけてクリックします。 3. 次に、開いたウィンドウで「ローカル エリア接続」を右クリックし、「プロパティ」をクリックします。 4. 開いたら、「インターネット プロトコル バージョン (TCP/IPv4)」を見つけてダブルクリックします。

C++ は、同じ名前の辞書という点で Python とは異なりますが、同様の機能を備えた同じデータ構造を持っています。 C++ はマッピングをサポートしており、STL クラス std::map で使用できます。マップ オブジェクトには各エントリに値のペアが含まれており、1 つはキー値、もう 1 つはマップ値です。キー値は、マップ内のエントリを検索し、一意に識別するために使用されます。マップされた値は必ずしも一意である必要はありませんが、キーの値はマップ内で常に一意である必要があります。マッピングの使い方を見てみましょう。まず、C++ でマップされたデータ構造を定義する方法を見てみましょう。構文 #includemap<data_type1,data_type2>myMap; これを行う方法を確認するための例を見てみましょう-例 #incl

SSD はテクノロジーの世界に革命をもたらしました。これらのデータ ストレージ ソリューションは、超高速で比類のない読み取り/書き込み速度を備えているため、すべてのユーザーがシステム オペレーティング システムをインストールしたいと考えています。しかし、新しい SSD が Windows デバイスに表示されない場合はどうすればよいでしょうか?これは、システムに接続された新品の SSD で発生する可能性のある一般的な問題です。心配しないで。適切な解決策を見つけました。以下の手順に従うだけで、SSD がすぐにファイル エクスプローラーに戻ります。解決策 - 1. SSD 接続を確認します。 USB ハブを使用している場合は、SSD をシステムに直接接続します。 SSD のコネクタに物理的な欠陥がないか確認してください。
