1 00:00:00,000 --> 00:00:02,538 >> [音楽再生] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC欧陽:ねえ、みんな。 4 00:00:12,390 --> 00:00:13,580 ようこそ。 5 00:00:13,580 --> 00:00:16,860 これは、動的に構築されている WebがLaravelでAppsの。 6 00:00:16,860 --> 00:00:18,290 私の名前はエリック·欧陽です。 7 00:00:18,290 --> 00:00:23,860 私は社会科の勉強年生です コンピュータサイエンスの二次的に、 8 00:00:23,860 --> 00:00:27,290 と私はアダムスに住んでいる ここでハーバード大学のハウス。 9 00:00:27,290 --> 00:00:33,340 >> だから、Laravel、その最も中核に、 MVC Webアプリケーションフレームワークです。 10 00:00:33,340 --> 00:00:38,265 だから、みんなが持っているもののような CS50ファイナンスでやって、 11 00:00:38,265 --> 00:00:42,480 Laravelは可能にするフレームワークです あなたは、動的なWebアプリケーションを構築する。 12 00:00:42,480 --> 00:00:47,710 だから、ある意味でそれを考えることができます ものの種類の延長として 13 00:00:47,710 --> 00:00:50,470 あなたはCS50で行ってきた 財務、しかしだシステム 14 00:00:50,470 --> 00:00:55,890 たくさん、たくさんより堅牢 ある意味で、よりエレガントな、 15 00:00:55,890 --> 00:00:57,870 との多くを提供します あなたのための機能 16 00:00:57,870 --> 00:01:03,060 かなり複雑な構築する ウェブアプリケーション。 17 00:01:03,060 --> 00:01:05,010 それでは、いくつか見ていきましょう 主要な機能の、 18 00:01:05,010 --> 00:01:09,550 その後、我々は飛び込むよ ブログを構築する例 19 00:01:09,550 --> 00:01:12,500 Laravelを使用したアプリケーション。 20 00:01:12,500 --> 00:01:16,700 >> 最初のものの1だから、 仕事のMVCタイプからそれを区別する 21 00:01:16,700 --> 00:01:22,100 あなたはCS50で行ってきたことを それはORMエンジンを含むです。 22 00:01:22,100 --> 00:01:27,410 だから、ORMは、オブジェクトの略 リレーショナルマッピング。 23 00:01:27,410 --> 00:01:31,080 だから、これはあなたが構築することができます 抽象化の層 24 00:01:31,080 --> 00:01:35,230 データベース間 とあなたのコントローラ。 25 00:01:35,230 --> 00:01:39,150 CS50ファイナンスどこでそうとは異なり、 あなたが直接、クエリを作る 26 00:01:39,150 --> 00:01:44,790 ORMレイヤーは、次のことができます 離れてその抽象的と作成 27 00:01:44,790 --> 00:01:48,085 より強力ですモデル あなたは、SQLクエリを直接することができます。 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> 本当にだもう一つは 役立つは継承テンプレートです。 30 00:01:53,510 --> 00:01:58,990 だから、あなたはCS50ファイナンスに気づくでしょう、 あなたは多くのものを書き換えてしまう、 31 00:01:58,990 --> 00:02:03,150 どこの場所あなたが潜在的に可能性 物事を再利用し、あなたがすることができませんね。 32 00:02:03,150 --> 00:02:08,539 だからここLaravelで、あなたは何を使用することができます ブレードテンプレートエンジンとして知られている 33 00:02:08,539 --> 00:02:10,530 マスターレイアウトを作成する。 34 00:02:10,530 --> 00:02:15,840 そしてそこから、あなたが継承できる サブテンプレートが実際にできるように 35 00:02:15,840 --> 00:02:21,210 内の要素を含む 大きなベーステンプレートその。 36 00:02:21,210 --> 00:02:21,810 >> 移行。 37 00:02:21,810 --> 00:02:29,010 だから、これは上でかなり標準的な機能である 最も近代的なWebアプリケーションフレームワーク。 38 00:02:29,010 --> 00:02:32,710 だから、これはあなたが表現することができます コー​​ド内のデータベース·スキーマの変更。 39 00:02:32,710 --> 00:02:39,200 だから、言おうとしてなくて、phpMyAdminは、 あなたが実際にこれらの移行を作成することができます 40 00:02:39,200 --> 00:02:44,660 データベースを表し 直接コード内のスキーマの変更。 41 00:02:44,660 --> 00:02:48,070 そして、これはあなたが特にto--ことができます あなたが動作する複数の人々を持っている場合 42 00:02:48,070 --> 00:02:52,650 同じWeb application--上 これらの変更を追跡し、 43 00:02:52,650 --> 00:02:55,380 GitHubの、またはいくつかの他のリポジトリに言う。 44 00:02:55,380 --> 00:03:00,880 >> だから、これは本当に便利です。 と必要性を軽減 45 00:03:00,880 --> 00:03:04,580 たとえば、するには、SQLダンプを多くの周りを通過。 46 00:03:04,580 --> 00:03:07,140 そして最後に、Composerはある 本当に、本当に便利なもの 47 00:03:07,140 --> 00:03:09,840 それはあなたが他の使用することができます 人のコードは素晴らしい事をする。 48 00:03:09,840 --> 00:03:14,020 ようLaravelのは、構造化された いくつかの作曲家·パッケージ。 49 00:03:14,020 --> 00:03:17,870 だから、あなたが持って来たいと思った場合には言う 認証パッケージで 50 00:03:17,870 --> 00:03:23,440 またはあなたには、いくつかに持って来たいと思った場合、 発電機スクリプトまたは管理者のソート 51 00:03:23,440 --> 00:03:26,910 インターフェースには、プラグアンドプレイすることができます 作曲とそれらのコンポーネント。 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> それでは始めましょう。 54 00:03:31,570 --> 00:03:35,185 あなたからのどの質問 私たちは始める前に、みんな? 55 00:03:35,185 --> 00:03:36,500 いいえ質問ません? 56 00:03:36,500 --> 00:03:37,490 クール。 57 00:03:37,490 --> 00:03:39,990 したがって、最初のステップです Composerをインストールする。 58 00:03:39,990 --> 00:03:43,590 だから、作曲は、次のことができます これらの依存関係を管理、 59 00:03:43,590 --> 00:03:47,770 それはLaravelフレームワークのかどうか またはいくつかの他のサードパーティ製の拡張機能。 60 00:03:47,770 --> 00:03:50,400 最初のコマンドは、ことができます あなたComposerをダウンロードするには、 61 00:03:50,400 --> 00:03:55,890 2番目のコマンドは、次のことができます お近くのbinフォルダに移動 62 00:03:55,890 --> 00:04:01,340 あなたは、Composerを実行できるように 直接端子を介して。 63 00:04:01,340 --> 00:04:05,405 >> その後、先に行くと、 新しいLaravelプロジェクトを作成します。 64 00:04:05,405 --> 00:04:07,280 私たちは、実際にするつもりだ いくつかのサンプルコードを使用する 65 00:04:07,280 --> 00:04:10,760 私は一緒に入れてきたこと このブログを作成します。 66 00:04:10,760 --> 00:04:14,420 しかし、あなたはから開始している場合は、 スクラッチは、このコマンドを使用します 67 00:04:14,420 --> 00:04:18,160 ここに、作曲家は、プロジェクトを作成し、 その後laravelスラッシュlaravel、と 68 00:04:18,160 --> 00:04:19,940 プロジェクトの名前。 69 00:04:19,940 --> 00:04:22,275 そして、それは含まれます すべての配布コード 70 00:04:22,275 --> 00:04:23,733 新しいLaravelプロジェクトを開始するため。 71 00:04:23,733 --> 00:04:28,870 あなたのCS50最終プロジェクトのためだから、あなたはよ おそらくそのコマンドを使用します。 72 00:04:28,870 --> 00:04:31,210 >> しかし、我々はこれで開始するつもりだ。 73 00:04:31,210 --> 00:04:34,630 だから、やった後、 、あなたが取得するつもりだこと 74 00:04:34,630 --> 00:04:40,190 かなり大規模な数 blog50内のファイルの。 75 00:04:40,190 --> 00:04:43,840 それでは、ただ見ていきましょう これらの構成要素の一部。 76 00:04:43,840 --> 00:04:49,060 あなたはこのルートでわかります ディレクトリ、アプリのフォルダがあります。 77 00:04:49,060 --> 00:04:52,960 appフォルダの中に、あります 夫婦役立つフォルダー。 78 00:04:52,960 --> 00:04:56,330 で始まるへの注意の このconfigフォルダです。 79 00:04:56,330 --> 00:04:59,210 だから、これはどのように設定します あなたのWeb​​アプリケーションです 80 00:04:59,210 --> 00:05:04,350 、たとえば、人を認証するために行くか 現金なものか、データベースに接続します。 81 00:05:04,350 --> 00:05:06,400 >> そして、実際に何が 有用であることであるLaravel 82 00:05:06,400 --> 00:05:09,130 あなたが別の設定することができます 開発環境。 83 00:05:09,130 --> 00:05:12,090 だから、私たちはここでやったことはあればある 我々は、ローカルフォルダの下に行く、 84 00:05:12,090 --> 00:05:14,720 database.phpでファイルがあります。 85 00:05:14,720 --> 00:05:18,320 そして、あなたはここでその我々がわかります ことをMySQLの接続を設定する 86 00:05:18,320 --> 00:05:22,230 個人が接続することができます のMySQLサーバへ 87 00:05:22,230 --> 00:05:24,310 直接CS50アプライアンス上。 88 00:05:24,310 --> 00:05:26,980 そして、我々は、データベースに接続している 私が設定することをBlog50と呼ばれる。 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> それでは、実際に先に行くとしましょう これの作業バージョンを実行して、 91 00:05:37,085 --> 00:05:39,710 まさに感を得るために 私たちが構築しているアプリケーション 92 00:05:39,710 --> 00:05:41,390 のように見えます。 93 00:05:41,390 --> 00:05:46,150 だから私は、のコピーを持っている このBlog50が完了しました。 94 00:05:46,150 --> 00:05:51,910 だから、Laravel実際に サーバーが組み込まれています 95 00:05:51,910 --> 00:05:53,910 あなたが直接実行できること コマンドラインから。 96 00:05:53,910 --> 00:05:56,900 だから、これは次のようになり ときあなたが実際に前にPSET 97 00:05:56,900 --> 00:06:00,580 C.で独自のサーバーを構築 そこで、彼らはそうでは1を構築しています 98 00:06:00,580 --> 00:06:04,010 あなたはLaravelのアプリを実行できる 直接コマンドラインから。 99 00:06:04,010 --> 00:06:11,650 >> 我々はPHPの職人を行うのであれば、このサービスを提供 開発用サーバを起動します 100 00:06:11,650 --> 00:06:13,880 ポート8000​​で。 101 00:06:13,880 --> 00:06:18,250 だから我々はローカルホストに行けば 8000、あなたはちょっと、そのことに気づくでしょう。 102 00:06:18,250 --> 00:06:20,800 私たちは、私たちのブログアップと実行している。 103 00:06:20,800 --> 00:06:25,090 だからここLaravelを生成しています 私たちのブログのフロントページ。 104 00:06:25,090 --> 00:06:26,350 非常にシンプルなアプリケーション。 105 00:06:26,350 --> 00:06:28,610 しかし、いくつかあります 本当に気の利いた機能が 106 00:06:28,610 --> 00:06:31,346 それはボンネットの下に提供している。 107 00:06:31,346 --> 00:06:33,680 >> だから、ブログアプリケーションの 単純明快。 108 00:06:33,680 --> 00:06:36,430 私たちはポストを作成したい場合は、 私たちは、そのボタンをクリックすることができます。 109 00:06:36,430 --> 00:06:40,470 私たちは、ねえ」、皆を言うことができます。 110 00:06:40,470 --> 00:06:44,530 これは本当に楽しいです 例えばセミナー、 "。 111 00:06:44,530 --> 00:06:46,560 そして、ここで何かを書き留める。 112 00:06:46,560 --> 00:06:48,180 ここにテキスト。 113 00:06:48,180 --> 00:06:51,327 私たちは[送信]をクリックした場合は、よ 予告私たちの新しいブログ 114 00:06:51,327 --> 00:06:53,410 投稿はに追加されました ブログのフロントページ。 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 私たちはここに戻って行く場合、あなたはそれをわかります すでにいくつかのコメントがあった 117 00:06:59,970 --> 00:07:01,160 ブログで。 118 00:07:01,160 --> 00:07:03,630 私たちは下にスクロールした場合、あなたがますので ジョナサン·タンが言うことに気づく 119 00:07:03,630 --> 00:07:08,020 彼は非常にこのポストに興味をそそられたこと。 120 00:07:08,020 --> 00:07:11,570 >> だから我々はどのようにオブジェクトに行くよ リレーショナルマッピングが可能に 121 00:07:11,570 --> 00:07:16,668 あなたの中にこれらの関係を行うに 同様にかなりシームレスな方法。 122 00:07:16,668 --> 00:07:17,660 クール。 123 00:07:17,660 --> 00:07:20,290 機能性についてのご質問 私たちが構築しようとしている何の? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 クール。 126 00:07:23,840 --> 00:07:28,170 それでは、実際にして始めましょう データベーステーブルを作成する。 127 00:07:28,170 --> 00:07:33,190 >> だから、CS50ファイナンスのことを思い出す ユーザーのためのテーブルを一緒に入れ 128 00:07:33,190 --> 00:07:37,100 などのために あなたのポートフォリオの銘柄。 129 00:07:37,100 --> 00:07:41,040 我々は先に述べたように、 私たちはLaravelで使用 130 00:07:41,040 --> 00:07:43,090 の移行として知られているものです。 131 00:07:43,090 --> 00:07:48,570 だから我々は戻っへ行けば ここで配布コード 132 00:07:48,570 --> 00:07:51,790 ある最初のコマンド Laravelはあなたを提供する役立つ 133 00:07:51,790 --> 00:07:54,240 このmigrateコマンドである。 134 00:07:54,240 --> 00:07:59,220 だから我々は、PHP職人の移行を行うことができます。make。 135 00:07:59,220 --> 00:08:01,760 だから、これは私たちが、移行を作成することができます。 136 00:08:01,760 --> 00:08:03,710 >> そして、我々はしたいと思う 移行を作成する 137 00:08:03,710 --> 00:08:07,050 、create_posts_tableと呼ばれる これが起こっている 138 00:08:07,050 --> 00:08:11,521 我々はするつもりだどこであると 私たちのブログの記事を保存すること。 139 00:08:11,521 --> 00:08:14,690 そして、あなたはそれが実行されることをここに気づくでしょう 実際にいくつかのコードを 140 00:08:14,690 --> 00:08:17,580 でファイルを生成します その上にタイムスタンプ。 141 00:08:17,580 --> 00:08:22,260 だから我々は行くとデータベースを見れば、 我々は、移行の下に気付くでしょう 142 00:08:22,260 --> 00:08:24,830 それが作成さだと 私たちのために空白のファイルいる 143 00:08:24,830 --> 00:08:30,100 名前の定型的なコードを持って 私たちは、指定していることを、postsテーブルを作成します。 144 00:08:30,100 --> 00:08:31,670 >> そして、それは2つの機能を有している。 145 00:08:31,670 --> 00:08:40,539 アップは、私たちがしたときに実行したいものです。 マイグレーションがデータベースに適用される。 146 00:08:40,539 --> 00:08:46,380 そして、ダウンは、私たちがやろうとしているものです 我々は、移行を逆にしたいときに。 147 00:08:46,380 --> 00:08:49,890 だからここから始めてみましょう この移行を書いている。 148 00:08:49,890 --> 00:08:55,480 そこで役立つクラスがあります Laravelにスキーマと呼ばれる。 149 00:08:55,480 --> 00:08:57,910 >> だから我々は、スキーマを実行するつもり::作成します。 150 00:08:57,910 --> 00:09:01,080 そして、我々は作成しましょう 表には、ポストと呼ばれる。 151 00:09:01,080 --> 00:09:05,980 そしてここで、我々は関数を使用してこれを適用する。 152 00:09:05,980 --> 00:09:11,010 そして、ここの中、私たちは実際にするつもりだ 私たちのテーブルの内容を指定します。 153 00:09:11,010 --> 00:09:14,860 私たちは、IDを作成するつもりだ、 その自動インクリメントである。 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> さらに、我々はつもりだ そのフィールドを作成する 156 00:09:24,350 --> 00:09:27,060 私たちのブログの記事のタイトルを表します。 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 また、フィールドを作成するつもりだ 私たちのブログの記事のテキストを格納するため。 159 00:09:36,950 --> 00:09:40,600 そして最後に、我々はつもりだ いくつかのタイムスタンプを保存する 160 00:09:40,600 --> 00:09:44,690 私たちのポストが作成されたときのために そしてそれが更新された。 161 00:09:44,690 --> 00:09:46,240 そしてダウンのために、それはかなり簡単です。 162 00:09:46,240 --> 00:09:53,974 私たちが何をしたいすべてはドロップです 私たちが作成したテーブル。 163 00:09:53,974 --> 00:09:54,930 >> グレート。 164 00:09:54,930 --> 00:09:55,850 何か質問? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 だから今我々は先に行く場合は、 and--実際に、ローカルホスト、 167 00:10:07,110 --> 00:10:09,640 私たちは以前に持っていたものは削除しましょう​​。 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 データベースに移動します。 170 00:10:15,190 --> 00:10:17,640 私たちは、以前持っていたものは削除するつもりです。 171 00:10:17,640 --> 00:10:22,870 これを削除し、作成する 新しいデータベースBlog50。 172 00:10:22,870 --> 00:10:24,930 だから今何魔法 一部はここにあることを我々 173 00:10:24,930 --> 00:10:28,760 直接これらの移行を適用することができます コマンドラインを使用してデータベースへ 174 00:10:28,760 --> 00:10:29,290 ツール。 175 00:10:29,290 --> 00:10:35,100 だから我々は、PHP職人の移行を行う場合、 あなたはちょっと、そのことに気づくでしょう。 176 00:10:35,100 --> 00:10:38,320 これは、移行テーブルを作成しただ、 その私たちは少しで見てみましょう、 177 00:10:38,320 --> 00:10:40,540 そして、この第一の移行を適用だ。 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> だから我々はあなたが気づくでしょう、Blog50を見て それが私たちのために二つのテーブルを作成しただと。 180 00:10:48,920 --> 00:10:50,300 最初にこの移行テーブルがある。 181 00:10:50,300 --> 00:10:54,130 我々はこれを閲覧するのであれば、あなたがいることに気づくでしょう このテーブルは非常に簡単です。 182 00:10:54,130 --> 00:10:55,490 それはちょうどちょっと、と言わだ。 183 00:10:55,490 --> 00:10:58,960 我々は、この移行を適用しました。 184 00:10:58,960 --> 00:11:01,470 我々は戻ってポストを見てください。 185 00:11:01,470 --> 00:11:05,720 あなたは、構造ことに気づくでしょう 我々はそれを求めていたまさにです。 186 00:11:05,720 --> 00:11:07,350 私たちは、自動インクリメントIDを持っています。 187 00:11:07,350 --> 00:11:10,450 私たちは、格納するための文字列を持っている タイトル、テキストフ​​ィールド 188 00:11:10,450 --> 00:11:11,450 コンテンツを格納する。 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 グレート。 191 00:11:14,706 --> 00:11:15,560 クール。 192 00:11:15,560 --> 00:11:21,626 の移行についてのご質問 仕事、我々はそれらをどのように適用することができますか? 193 00:11:21,626 --> 00:11:22,126 いいえ? 194 00:11:22,126 --> 00:11:23,600 クール。 195 00:11:23,600 --> 00:11:26,630 だから今、私たちは先に行くつもりです そして、実際にモデルを作成。 196 00:11:26,630 --> 00:11:33,100 だから我々はその柱モデルを作成したい データベースの抽象化を格納します。 197 00:11:33,100 --> 00:11:41,040 だからではなく、MySQLのクエリを実行する 直接、私たちは作成しましょう​​。 198 00:11:41,040 --> 00:11:45,840 だから我々は作成する必要があります ここに呼ばれるモデルでフォルダ。 199 00:11:45,840 --> 00:11:48,905 そして、ここの中に、私たちはするつもりだ 项目というファイルを作成します。 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> このPHPファイル内部では、 私たちは、作成しましょう 202 00:11:54,550 --> 00:12:00,590 雄弁な拡張するクラスのポスト。 203 00:12:00,590 --> 00:12:08,950 雄弁はORMの名前です Laravelが提供するエンジン。 204 00:12:08,950 --> 00:12:12,799 そして、ここでは、我々はそれを期待するかもしれない あなたが実際にいくつかのコードを記述する必要があります。 205 00:12:12,799 --> 00:12:14,840 我々はいくつかを記述するつもりだ ヘルパー機能は後で。 206 00:12:14,840 --> 00:12:19,420 しかし、箱から出して、これはすでに意志 データベースに何があるかを認識 207 00:12:19,420 --> 00:12:24,770 そして我々は、言う、テキストにアクセスすることができます 私たちのブログの記事やタイトルの、 208 00:12:24,770 --> 00:12:29,230 と直接のものを作成する 全くほとんどはコードません。 209 00:12:29,230 --> 00:12:31,110 >> だから、魔法のコンポーネントの一つだ。 210 00:12:31,110 --> 00:12:34,980 そして、このクラスに一度風 より本格的なされ、 211 00:12:34,980 --> 00:12:40,480 私たちは何についての情報が含まれます それは関連のなので、コメントは。 212 00:12:40,480 --> 00:12:42,310 また、関数を作成 私たちは、実際にすることができます 213 00:12:42,310 --> 00:12:46,340 直接URLを取得 ブログ投稿ページの。 214 00:12:46,340 --> 00:12:46,840 クール。 215 00:12:46,840 --> 00:12:47,881 そのことについて何か質問? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 いいえ。 218 00:12:51,832 --> 00:12:54,100 クール。 219 00:12:54,100 --> 00:12:57,860 >> だから今我々は我々のモデルを持っていたら、 のコントローラを作成したい 220 00:12:57,860 --> 00:13:02,340 これらのモデルとインターフェースすることができ、 し、その後データベース。 221 00:13:02,340 --> 00:13:05,540 だから我々は見てみた場合 BlogController、あなたはよ 222 00:13:05,540 --> 00:13:08,490 そこではないことに注意してください 今ここにずっと。 223 00:13:08,490 --> 00:13:13,220 存在する全ての指数関数である そのホームページを生成し、 224 00:13:13,220 --> 00:13:18,220 しかし何もせずに まだそこに表示されます。 225 00:13:18,220 --> 00:13:20,560 >> だから、最初の関数 我々は、作成しようとしていること 226 00:13:20,560 --> 00:13:25,790 私たちを可能にするものである ブログ投稿を作成します。 227 00:13:25,790 --> 00:13:30,540 だから我々は宣言するつもりだ newPostと呼ばれる新しい機能。 228 00:13:30,540 --> 00:13:36,430 そして、ここで簡単に内側に、私たちはつもりだ このページのレイアウトを設定する 229 00:13:36,430 --> 00:13:41,850 バージョンのレンダリングとすることで、 あなたはCS50からリコールした場合、 230 00:13:41,850 --> 00:13:48,020 blog.newと呼ばれるこのテンプレートの、どの 我々は少しで作成しましょう​​。 231 00:13:48,020 --> 00:13:53,170 >> あなたは、その行6にここに気づくでしょう 我々は、レイアウト、この変数を指定しました。 232 00:13:53,170 --> 00:13:55,820 そして、私たちは見てみると ビュー]フォルダで、 233 00:13:55,820 --> 00:14:01,640 レイアウトフォルダがあり、その 非常に基本的なHTMLファイルが含まれています。 234 00:14:01,640 --> 00:14:04,680 そして注目すべきは、あなたがわかります 私たちは、このコンテナを持っていること 235 00:14:04,680 --> 00:14:06,800 ここで、コンテンツを生み出すこと。 236 00:14:06,800 --> 00:14:09,460 だから私たちのテンプレートの内側 私たちがやろうとしている 237 00:14:09,460 --> 00:14:16,180 ことになるだろうものを作成されている このレイアウト内で直接置換されている。 238 00:14:16,180 --> 00:14:20,060 >> だから我々は、我々がレンダリングしたいと言った blog.newと呼ばれるテンプレート。 239 00:14:20,060 --> 00:14:23,790 しかし、ブログの内側に、あります まだこの新しいテンプレート。 240 00:14:23,790 --> 00:14:26,910 だから我々は作成しましょう ファイルはnew.blade.phpと呼ばれる。 241 00:14:26,910 --> 00:14:29,860 これはLaravelに伝え、その このPHPファイルべき 242 00:14:29,860 --> 00:14:31,720 で描画さ ブレードテンプレートエンジン。 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 だから、これはかなりある 簡単なファイル。 245 00:14:42,630 --> 00:14:46,690 それは、フォームになるだろう 私たちは実際にブログの記事を追加。 246 00:14:46,690 --> 00:14:49,220 >> ここからだから魔法 継承はちょっと、ということです。 247 00:14:49,220 --> 00:14:52,950 我々はそれを指定したい セクション、コンテンツセクション 248 00:14:52,950 --> 00:14:56,640 ここでは、線引きされている @sectionと@stopによる。 249 00:14:56,640 --> 00:15:02,260 だから何の間、ここでだとしている マスターレイアウトに置換すること。 250 00:15:02,260 --> 00:15:07,000 そして、ここで私たちが何をしたいです 非常に簡単に新しいHTMLファイルを作成します。 251 00:15:07,000 --> 00:15:08,690 ちょうど迅速なタイトルを追加してみましょう。 252 00:15:08,690 --> 00:15:09,600 ブログの記事を追加します。 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 そして、その中に、私たちはしている フォームを作成する予定。 255 00:15:15,390 --> 00:15:19,197 >> このフォームは、アクションを持っているとしている。 256 00:15:19,197 --> 00:15:21,780 そして、これは何かになるだろう 私たちは、後で代用することを、 257 00:15:21,780 --> 00:15:24,200 私たちはどのように表示されます ルーティングは、ここに収まる。 258 00:15:24,200 --> 00:15:33,600 しかし、我々は今に定義するつもりだ これはルートにURLに行くこと 259 00:15:33,600 --> 00:15:34,860 createPostから。 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 そして、これが起こっている メソッドのポストを持っている。 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 ここの中で、私たちはつもりだ 二つのフィールドを持っている。 264 00:15:47,590 --> 00:15:49,170 DIVクラス= "フォーム·グループ」。 265 00:15:49,170 --> 00:15:55,806 >> 私たちは、ブートストラップCSSのライブラリを使用している 優雅にツイッターで提供。 266 00:15:55,806 --> 00:15:57,720 だから我々は、これらのうちの2つを作成しましょう​​。 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 したがって、この最初の入力である タイトルになるだろう。 269 00:16:05,970 --> 00:16:08,437 だから、入力名= "タイトル"。 270 00:16:08,437 --> 00:16:09,270 クラス= "formcontrol」。 271 00:16:09,270 --> 00:16:13,540 272 00:16:13,540 --> 00:16:14,425 タイプ= "テキスト"。 273 00:16:14,425 --> 00:16:16,050 私は、プレースホルダー= "タイトル"を追加するつもりです。 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> 次いで第2のものである テキスト領域になるだろう。 276 00:16:26,140 --> 00:16:27,827 = "コンテンツ"を名前を付けます。 277 00:16:27,827 --> 00:16:28,660 クラス= "formcontrol」。 278 00:16:28,660 --> 00:16:33,402 279 00:16:33,402 --> 00:16:34,610 そして、プレースホルダは= "ここに書く」。 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 我々はそこに行く。 282 00:16:43,480 --> 00:16:46,760 最後に、我々はするつもりだ 迅速な送信ボタンを追加します。 283 00:16:46,760 --> 00:16:50,370 タイプ=「送信」クラス= "BTN BTN-主」。 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 したがって、これらが全てです そのようにブートストラップの特徴 286 00:16:55,340 --> 00:16:58,510 これを置くことができること の方法で実施 287 00:16:58,510 --> 00:17:03,730 ユーザーに獲物、 むしろ裸のHTMLより。 288 00:17:03,730 --> 00:17:06,250 >> だから我々はここで、コントローラを定義しました。 289 00:17:06,250 --> 00:17:08,930 我々は非常に単純なビューを定義しました。 290 00:17:08,930 --> 00:17:12,339 しかし、不足しているとは何だ 結合組織。 291 00:17:12,339 --> 00:17:15,420 したがって、この時点で、 Laravelはどのようにないアイデアを持っていない 292 00:17:15,420 --> 00:17:18,312 私たちは実際にするつもりだ このコントローラにアクセスします。 293 00:17:18,312 --> 00:17:20,270 だから、これはで定義されています ファイルはroutes.phpのと呼ばれる。 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 そして、今、私たちは1ルートを持っている。 296 00:17:24,310 --> 00:17:29,060 私達がに行くときどちらが このウェブサイトのためのホームパス、 297 00:17:29,060 --> 00:17:33,140 それがレンダリングするために起こっている インデックスコントローラ。 298 00:17:33,140 --> 00:17:38,880 そこでここでは実装されてやる必要があるか 私たちはポストを作成するための新しいルート。 299 00:17:38,880 --> 00:17:41,910 >> だから我々は、このメソッドを使用 指定する、取得 300 00:17:41,910 --> 00:17:48,650 ユーザーがしようとすると、その 特にこの当ページを取得する 301 00:17:48,650 --> 00:17:52,850 投稿は、新しいページ - スラッシュ 私たちがやろうとしている 302 00:17:52,850 --> 00:18:02,060 と呼ばれるコントローラを使用している BlogController新しいポスト。 303 00:18:02,060 --> 00:18:03,460 先ほど作成した1。 304 00:18:03,460 --> 00:18:08,090 そして、我々はつもりだ newPostとしてそれをエイリアスに。 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 私たちは、別のものを作成しましょう 少しで機能。 307 00:18:19,850 --> 00:18:23,520 しかし、下のここで何だ 何」と「キー 308 00:18:23,520 --> 00:18:28,195 我々は内置き換えることができます 私たちのブレードテンプレート。 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 だから今のために、してみましょう 実際にもルートを言う。 311 00:18:36,230 --> 00:18:38,380 だから我々はまたつもりだ コントローラーを作成する 312 00:18:38,380 --> 00:18:41,020 私たちはこれらの記事を作成できるように。 313 00:18:41,020 --> 00:18:46,940 もしそうであれば、ページのポストへのユーザーの投稿 私たちがやろうとしているものを、新たなスラッシュ 314 00:18:46,940 --> 00:18:51,350 そのコントローラを使用しています 私たちはすぐに作成しましょう 315 00:18:51,350 --> 00:18:56,160 createPostでBlogControllerと呼ばれる。 316 00:18:56,160 --> 00:19:01,929 そして、我々はエイリアスになるだろう このcreatePostとして持つ。 317 00:19:01,929 --> 00:19:03,380 クール。 318 00:19:03,380 --> 00:19:05,811 >> 何か質問? 319 00:19:05,811 --> 00:19:06,310 クール。 320 00:19:06,310 --> 00:19:09,790 それでは、私たちはこれまでに持っているもの実行してみましょう。 321 00:19:09,790 --> 00:19:16,930 我々はPHPの職人を行うのであれば、サーブ 我々は、エラーがたくさん表示されます。 322 00:19:16,930 --> 00:19:20,385 我々が持っているようなので、それが見えます ルートライン27上の構文エラー。 323 00:19:20,385 --> 00:19:20,885 ああ。 324 00:19:20,885 --> 00:19:21,718 セミコロンがありません。 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 だから我々は8000に行けば、 あなたはまだここに何も表示されませんよ。 327 00:19:32,870 --> 00:19:34,740 だから、これはデフォルトのホームページです。 328 00:19:34,740 --> 00:19:37,730 >> しかし、我々はちょっと、新しいスラッシュ投稿する行けば。 329 00:19:37,730 --> 00:19:40,425 それは、先ほど作成したフォームになるでしょう。 330 00:19:40,425 --> 00:19:42,550 今、我々はそうではありません 機能を実装 331 00:19:42,550 --> 00:19:44,060 我々は送信ボタンを押したときの。 332 00:19:44,060 --> 00:19:47,110 だから我々はSubmitをクリックした場合 ボタン、エラーを実行するために起こっている。 333 00:19:47,110 --> 00:19:49,840 しかし、我々はそれをコーディングするつもりだ 今は、まさに我々 334 00:19:49,840 --> 00:19:54,840 ときに、ユーザーをやってみたい このフォームを送信する。 335 00:19:54,840 --> 00:19:55,770 >> それでは、それを行うことができます。 336 00:19:55,770 --> 00:19:57,380 コントローラファイルに戻る。 337 00:19:57,380 --> 00:20:00,180 私たちがやろうとしていることである この新たな機能を実装する 338 00:20:00,180 --> 00:20:04,360 それは私たちがポストを作成することができます。 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 新しい関数を宣言します。 341 00:20:08,990 --> 00:20:11,527 パブリック·ファンクションcreatePost。 342 00:20:11,527 --> 00:20:14,610 そして、この関数はあることを行っている もう少し洗練されたものよりも 343 00:20:14,610 --> 00:20:15,559 我々は前に持っていた。 344 00:20:15,559 --> 00:20:18,350 しかし、あなたは私たちがわからないことがわかります 実際に任意のSQLを書くつもり。 345 00:20:18,350 --> 00:20:20,980 ORM、雄弁 ORMは、許可するように起こっている 346 00:20:20,980 --> 00:20:26,400 私たちは、いくつかでこれを行うには 方法は、よりエレガントな方法。 347 00:20:26,400 --> 00:20:29,140 >> だから我々は新しい投稿を作成するつもりだ。 348 00:20:29,140 --> 00:20:34,120 そしてここで我々はしている 新しいオブジェクトをインスタンス化する 349 00:20:34,120 --> 00:20:38,080 ちょうど私達のモデルから 作成された、ポストモデル。 350 00:20:38,080 --> 00:20:44,450 そして、私たちがやろうとしていることは設定されている この使用して何かのtitle属性 351 00:20:44,450 --> 00:20:47,380 我々は、サーバーから取得すること。 352 00:20:47,380 --> 00:20:52,060 だから、これは何に似ている 我々はCS50ファイナンスの前に持っていた 353 00:20:52,060 --> 00:20:57,750 私たちはどうしたらどこに、スーパーを使用して タイトルを探してグローバルポスト。 354 00:20:57,750 --> 00:21:01,600 >> だから、Laravelは、いくつかの衛生を提供しています とその他もろもろこのヘルパー関数を使用して。 355 00:21:01,600 --> 00:21:07,610 だから我々は、代わりにこれを使用することを好むだろう PHPからこの非常に基本的な生の形式の。 356 00:21:07,610 --> 00:21:17,430 そして、私たちがやろうとしていることは設定されている 入力にのコンテンツは、コンテンツを取得する。 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 私たちは、実際にラップするつもりだ この便利な機能で 359 00:21:22,720 --> 00:21:31,820 PHPが提供するnl2brと呼ばれる、その 、新しいライン、NLS、BRSに、休憩を回す 360 00:21:31,820 --> 00:21:35,822 私たちは実際に持つことができるように それ内の異なる段落。 361 00:21:35,822 --> 00:21:38,030 そして最後に、私たちが行っているものを 行うにはこのポストを保存している。 362 00:21:38,030 --> 00:21:41,686 だから我々は関数を呼び出す このモデルに保存します。 363 00:21:41,686 --> 00:21:43,800 私たちはポストを保存するつもりです。 364 00:21:43,800 --> 00:21:49,970 そして最後に私たちがやろうとしているものを 特にユーザーをリダイレクトされる 365 00:21:49,970 --> 00:21:55,060 私たちがしようとしているルートへ viewPostによって、まもなくエイリアスを作成。 366 00:21:55,060 --> 00:22:00,435 そして、我々は、引数に渡すつもりだ ID、この新しいポストのIDであること。 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> グレート。 369 00:22:05,640 --> 00:22:09,090 だから今、私たちは、実際に行くとこれを実行した場合。 370 00:22:09,090 --> 00:22:11,370 私たちは、新しい投稿を追加するつもりだ。 371 00:22:11,370 --> 00:22:15,930 のはこれがセミナー50で言ってみましょう。 372 00:22:15,930 --> 00:22:17,620 そして、必ず言う。 373 00:22:17,620 --> 00:22:18,240 ASDL。 374 00:22:18,240 --> 00:22:18,740 なんでも。 375 00:22:18,740 --> 00:22:20,320 コンテンツのいくつかの並べ替え。 376 00:22:20,320 --> 00:22:21,180 そして、それを提出してください。 377 00:22:21,180 --> 00:22:23,850 そして、私たちはそのことに気づくでしょう、 ちょっと。ルートは定義されていません。 378 00:22:23,850 --> 00:22:32,340 しかし、我々はphpMyAdminのを見ている場合と、 かどうか私達の機能を探す 379 00:22:32,340 --> 00:22:34,370 何をしました。 380 00:22:34,370 --> 00:22:36,670 Blog50ポストを見てください。 381 00:22:36,670 --> 00:22:37,720 私たちは、ちょっと、そのことに気づくでしょう。 382 00:22:37,720 --> 00:22:43,530 実際には、我々はちょうどそのブログを作成しました 指定されたタイムスタンプを投稿してください。 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> だから今のは戻って、実際に作成してみましょう 私たちのコントローラでこの他の機能、 385 00:22:51,630 --> 00:22:54,790 特にviewPostコントローラ。 386 00:22:54,790 --> 00:23:00,290 だから、パブリック関数viewPost。 387 00:23:00,290 --> 00:23:04,070 そこでここでは、その代わりに、やる何 空の括弧を持っていることの、 388 00:23:04,070 --> 00:23:08,800 我々は、のIDを渡したいと思う 私たちが作成しているポスト。 389 00:23:08,800 --> 00:23:12,800 そしてここから私たちは何をするつもりだ 実際にそれをデータベースに照会されている。 390 00:23:12,800 --> 00:23:15,140 >> だから我々は投稿しない場合、 呼び出された関数があります 391 00:23:15,140 --> 00:23:18,860 それは私たちがIDを指定して照会することができます見つける。 392 00:23:18,860 --> 00:23:22,110 具体的には、実際に、私たちはするつもりだ と呼ばれるこのの代替バージョンを使用する 393 00:23:22,110 --> 00:23:27,880 私たちを可能に見つけたり、失敗、 この関数の外に終了し、 394 00:23:27,880 --> 00:23:34,700 ID場合に例外をスロー 我々は存在しませんに渡す。 395 00:23:34,700 --> 00:23:37,500 そして、我々は何かをやろうとしている 以前行ったものと同様 396 00:23:37,500 --> 00:23:41,100 我々は、コンテンツを設定する場合 このページであることが 397 00:23:41,100 --> 00:23:47,950 この新しいビューのレンダリングされたバージョン その私たちは、blog.viewを作成しましょう​​。 398 00:23:47,950 --> 00:23:51,030 >> そして、我々はに合格するつもりだ it--ちょうどCS50のようにレンダリング 399 00:23:51,030 --> 00:23:56,645 変数の辞書をfunction--。 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 この連想配列のキー テンプレート内の変数になる。 402 00:24:04,620 --> 00:24:06,830 だから我々はポストポストをやろうとしている。 403 00:24:06,830 --> 00:24:12,474 だから間接的にポストを渡す 我々は、データベースから照会した。 。 404 00:24:12,474 --> 00:24:14,390 今、私たちがしようとしている 何このビューを作成することです 405 00:24:14,390 --> 00:24:17,560 私たちが実際に見ることができるように 私たちが構築したブログ投稿。 406 00:24:17,560 --> 00:24:20,280 >> だから我々は作成しましょう ファイルがview.blade.php呼んだ。 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 したがって、このテンプレートの内側に、 私たちがやろうとしている 409 00:24:29,640 --> 00:24:39,700 シンプルなページにまとめていること 私たちがコンテンツを表示することができます。 410 00:24:39,700 --> 00:24:44,280 だから我々は、それはコンテンツの前にセクションのです。 411 00:24:44,280 --> 00:24:46,800 停止。 412 00:24:46,800 --> 00:24:53,920 そして、私たちは何を行っている ここに内行うことである 413 00:24:53,920 --> 00:24:56,930 このページを表示するためにいくつかのHTMLを書く。 414 00:24:56,930 --> 00:25:03,590 >> だから私たちは空想でそれをラップするつもりだ 新しいHTML5の要素が条と呼ばれる。 415 00:25:03,590 --> 00:25:05,790 そして、ここでは、我々はつもりだ どこにヘッダーを持っている 416 00:25:05,790 --> 00:25:12,190 我々は、単にH1を持っているつもりだ その記事のタイトルが含まれています。 417 00:25:12,190 --> 00:25:17,120 だからここ、私たちはこれを見ている場合 二重中括弧表記、 418 00:25:17,120 --> 00:25:21,690 これは基本的に行います PHPは、記事のタイトルをエコー。 419 00:25:21,690 --> 00:25:25,630 だから、便利速記だ Laravelは私たちを提供する。 420 00:25:25,630 --> 00:25:31,070 だから我々は使用するつもりだ 代わりにこの表記法。 421 00:25:31,070 --> 00:25:40,220 >> そしてここで、私たちもするつもりだ それの内容をプリントアウトする。 422 00:25:40,220 --> 00:25:43,480 そして、ここでは、我々はつもりだ 投稿するコンテンツとすることができません。 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 そして、我々は何をしている下部のダウン 何をするつもりは、フッターを作成することです。 425 00:25:50,660 --> 00:25:57,690 とフッターに、我々はするつもりだ これがポストされた第一の表示。 426 00:25:57,690 --> 00:26:01,320 だから、これは、に掲載さで作成されました。 427 00:26:01,320 --> 00:26:07,996 >> そして、Laravelは本当に素敵なを使用しています 日付ライブラリは、カーボンと呼ばれる。 428 00:26:07,996 --> 00:26:11,120 だから我々は実際に呼び出さ何かを行うことができます あなたが前に見たdifforHumans、。 429 00:26:11,120 --> 00:26:14,360 我々が投稿されたとき。それは、言うよ のように、5秒前。 430 00:26:14,360 --> 00:26:16,860 だから、これは本当にいいです Laravelの機能性。 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 そして最後に、我々はつもりだ このフッターを閉じます。 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> だから今我々はに戻る場合は、 私たちが行っているホームページ 435 00:26:31,450 --> 00:26:34,490 ので、まだここに何も表示されませんように 私たちはホームページをアップコーディングしていない。 436 00:26:34,490 --> 00:26:40,962 しかし、我々はスラッシュ1を投稿する行けば、 我々は例外を見に行っている。 437 00:26:40,962 --> 00:26:42,670 なぜ誰も知っていますか 私たちは、例外を参照してください? 438 00:26:42,670 --> 00:26:44,516 私たちは何が欠けている? 439 00:26:44,516 --> 00:26:45,290 任意のアイデア? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 だから我々は何をした 以前の私たちのために実際に 442 00:26:49,790 --> 00:26:52,285 我々はに着く方法を定義する 特定のコントローラ? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> SPEAKER 1:ルート? 445 00:26:55,770 --> 00:26:56,519 ERIC欧陽:うん。 446 00:26:56,519 --> 00:26:58,070 だから我々はまだルートを定義する必要があります。 447 00:26:58,070 --> 00:26:59,794 だから我々はroutes.phpのためにここに戻ってください。 448 00:26:59,794 --> 00:27:01,710 あなたは私たちに気付くでしょう 実際に定義していない 449 00:27:01,710 --> 00:27:05,010 どのように我々は取得するつもりだ このコントローラに。 450 00:27:05,010 --> 00:27:06,780 だから今我々はこのルートを定義するつもりだ。 451 00:27:06,780 --> 00:27:09,280 それはかなり簡単ですが、 以前行ったものと同様。 452 00:27:09,280 --> 00:27:13,910 しかし、私たちがここに気づくするつもりだことはある 私たちは、プレースホルダーを持っているつもりだ。 453 00:27:13,910 --> 00:27:18,730 >> だから我々はroute.getスラッシュポストIDを行う場合。 454 00:27:18,730 --> 00:27:24,290 だから、IDは、今まで何が起こっているのである コントローラに渡される。 455 00:27:24,290 --> 00:27:27,820 これは使おうとしている コントローラ我々だけ 456 00:27:27,820 --> 00:27:33,560 作成し、viewPostでBlogController。 457 00:27:33,560 --> 00:27:36,420 そして、我々はするつもりだ viewPostとしてエイリアスこれを。 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 グレート。 460 00:27:47,490 --> 00:27:49,470 だから今我々はこのルートを作成しようとしている。 461 00:27:49,470 --> 00:27:52,100 >> だから今、私たちはここに行けば このページの更新、 462 00:27:52,100 --> 00:27:54,410 実際に私たちは私たちの新しいブログ投稿がありますか。 463 00:27:54,410 --> 00:27:57,710 だから、これは私たちが以前に作成したものです。 464 00:27:57,710 --> 00:28:01,320 非常にシンプルなページが、表示されます 先ほど作成したブログ投稿。 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 クール。 467 00:28:04,760 --> 00:28:08,880 そして、我々は実際に全体を通過した場合 新しいブログ投稿を作成するプロセス、 468 00:28:08,880 --> 00:28:11,700 私たちは、そのすべてがわかります 適切にリダイレクトします。 469 00:28:11,700 --> 00:28:12,950 私が言う場合は、 "こんにちは。 470 00:28:12,950 --> 00:28:15,710 私はジョナサン·タンです。」 471 00:28:15,710 --> 00:28:18,550 「これは私のブログの記事である。」と言う 472 00:28:18,550 --> 00:28:22,830 そして、それを提出、これが作成されます ID 2と、この新しいブログ投稿、 473 00:28:22,830 --> 00:28:28,920 私たちが持っていたものからの増分 以前に、適切に表示します。 474 00:28:28,920 --> 00:28:30,760 恐ろしい。 475 00:28:30,760 --> 00:28:32,930 >> 何か質問? 476 00:28:32,930 --> 00:28:33,430 はい? 477 00:28:33,430 --> 00:28:36,537 >> SPEAKER 2:Laravelが扱うか サニタイズとあなたのためにすべてのもの? 478 00:28:36,537 --> 00:28:37,245 ERIC欧陽:はい。 479 00:28:37,245 --> 00:28:42,990 だから我々は、以前の際に見たとき 我々は、入力コロンコロンが手に入れた 480 00:28:42,990 --> 00:28:47,720 それは、任意のSQLをsanitates 注射やその他もろもろ 481 00:28:47,720 --> 00:28:51,660 我々は、以下の場合に実行する可能性があることを 我々は、ウェブサイトの悪意のあるユーザーなら。 482 00:28:51,660 --> 00:28:54,115 だから、Laravelは多くのことを処理します 舞台裏でそれの。 483 00:28:54,115 --> 00:28:57,030 良い質問。 484 00:28:57,030 --> 00:29:00,390 >> それでは、ホームページを見てみましょう。 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 我々が最初に戻るのであれば ホームページ用のコントローラ、 487 00:29:06,790 --> 00:29:08,740 あなたはそれことに気づくでしょう ここで多くを行いません。 488 00:29:08,740 --> 00:29:11,620 あなたは、私たちがわからないことに気づくでしょう このコントローラに渡す 489 00:29:11,620 --> 00:29:13,830 何も特に便利。 490 00:29:13,830 --> 00:29:16,660 それはちょうど、このインデックスファイルです。 491 00:29:16,660 --> 00:29:18,770 >> それでは、に通過させる 役に立つ何か。 492 00:29:18,770 --> 00:29:21,450 具体的には、我々はしている ポストに渡すつもり。 493 00:29:21,450 --> 00:29:28,740 そして、Laravelは私たちを可能にする 、すべてのポストを行うにはどの 494 00:29:28,740 --> 00:29:30,625 私たちはすべての投稿を取得できるようになります。 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 今、私たちは戻っへ行けば index.phpを、あなたはちょっと、表示されます。 497 00:29:35,730 --> 00:29:37,060 まだここに何もない。 498 00:29:37,060 --> 00:29:41,290 しかし、我々はここで何をしたいか 実際に反復処理され、 499 00:29:41,290 --> 00:29:46,420 その支柱の上にforeachループを行う 私たちはポストをプリントアウトすることができます。 500 00:29:46,420 --> 00:29:53,180 >> ようにforeachの投稿 私たちが何をしたいのか、ポスト、 501 00:29:53,180 --> 00:29:57,252 コンテンツを印刷している ブログ投稿の。 502 00:29:57,252 --> 00:30:00,210 しかし、あなたは気づくでしょう一つのことは、ということです 私たちは実際にそのコードのほとんどを書きました 503 00:30:00,210 --> 00:30:01,370 すでに、view.blade.phpで。 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 だから我々は、実際にやろうとしているものです ブレイドの素敵な役立つ機能を使用する 506 00:30:08,640 --> 00:30:11,300 そして、この共通コードをくくり出す。 507 00:30:11,300 --> 00:30:12,570 だから我々はここに行く。 508 00:30:12,570 --> 00:30:16,210 >> 私たちは、このコンテンツを取るつもりだ 右ここに、そして私たちがやろうとしている 509 00:30:16,210 --> 00:30:18,170 新しいフォルダを作成することです。 510 00:30:18,170 --> 00:30:20,364 ちょうどそれがパーシャル呼びましょう。 511 00:30:20,364 --> 00:30:22,530 そして、ここでは、我々はつもりだ post.blade.phpを作成します。 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 だからここ、我々は方法を因数分解 その私たちはこれらの記事を表示したい。 514 00:30:33,100 --> 00:30:38,690 そして、ここで私たちが代わりにやる何 実際に、直接そのHTMLを持つ 515 00:30:38,690 --> 00:30:41,530 私たちは、このディレクティブを使用するつもりだ と呼ばれるblog.partials.postが含まれています。 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> そして、我々はここでやろうとしているものを ページのポストを渡している。 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 私たちはここに戻って行くのであれば、今、私たちはよ 機能がまだあることに気付く 520 00:31:01,050 --> 00:31:01,550 同じ。 521 00:31:01,550 --> 00:31:05,140 しかし、今我々はこれを持っている 、このHTMLをコードを因数分解。 522 00:31:05,140 --> 00:31:07,070 だから私たちはインデックスにそれを使用することができます。 523 00:31:07,070 --> 00:31:09,090 だからここに、これは非常に簡単です。 524 00:31:09,090 --> 00:31:17,870 我々が行うすべてが含まれている blog.partials.postと配列。 525 00:31:17,870 --> 00:31:20,845 そして、どこかへ 前に、我々はポストポストを行う。 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> だから今我々はに戻る場合は、 ホームページは、我々はちょっと、その表示されます。 528 00:31:28,182 --> 00:31:30,515 我々は、すべてのリストを持っている 我々の前に持っていたブログ投稿。 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 我々はいくつかの「IF」を追加したい場合があります 条件と「それ以外」の条件 531 00:31:37,700 --> 00:31:39,979 そのため、私たちは持っていない場合 ブログに何でも、 532 00:31:39,979 --> 00:31:41,520 我々は有用なものを表示したい。 533 00:31:41,520 --> 00:31:42,570 ちょっと、のように。 534 00:31:42,570 --> 00:31:44,340 ブログにまだコンテンツがありません。 535 00:31:44,340 --> 00:31:47,670 そして、あなたたちは実際に見れば GitHubの上で流通コード、 536 00:31:47,670 --> 00:31:50,100 あなたは私たちがそれを行う方法の例が表示されます。 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> クール。 539 00:31:54,110 --> 00:31:54,890 何か質問? 540 00:31:54,890 --> 00:31:55,510 はい。 541 00:31:55,510 --> 00:31:57,468 >> SPEAKER 2:私はちょうど推測 根本的な問題。 542 00:31:57,468 --> 00:31:59,480 戻るルートで。 543 00:31:59,480 --> 00:32:00,230 ERIC欧陽:うん。 544 00:32:00,230 --> 00:32:01,935 我々はルートを見ると。 545 00:32:01,935 --> 00:32:06,018 >> SPEAKER 2:しない 作成後にuses.blogcontroller、 546 00:32:06,018 --> 00:32:07,560 それは私たちに何をへの直接のですか? 547 00:32:07,560 --> 00:32:08,310 ERIC欧陽:うん。 548 00:32:08,310 --> 00:32:08,550 うん。 549 00:32:08,550 --> 00:32:09,716 >> SPEAKER 2:または何that--です 550 00:32:09,716 --> 00:32:12,620 ERIC欧陽:だから、言って、見てみる 例えば、右ここにこのルート。 551 00:32:12,620 --> 00:32:17,190 最初の部分は、実際のです ユーザーはに行きますURL。 552 00:32:17,190 --> 00:32:19,930 そして、ここでこの配列、 連想配列、定義 553 00:32:19,930 --> 00:32:24,520 私たちは持っていたい方法 それに応答して、アプリケーションの行為。 554 00:32:24,520 --> 00:32:29,090 そのように使用するコントローラであり、 我々機能 555 00:32:29,090 --> 00:32:31,610 時呼び出したい ユーザーはこのURLに行く。 556 00:32:31,610 --> 00:32:35,190 だからviewPost右ここにいた 私たちは内部定義関数 557 00:32:35,190 --> 00:32:36,100 BlogController--の 558 00:32:36,100 --> 00:32:37,160 >> SPEAKER 2:なるほど。 559 00:32:37,160 --> 00:32:39,368 >> ERIC欧陽:その私たちの-SO 実際にビューをレンダリングすることができ、 560 00:32:39,368 --> 00:32:42,590 、いくつかの計算を実行する SQLデータベースと対話する。 561 00:32:42,590 --> 00:32:43,560 >> SPEAKER 2:OK。 562 00:32:43,560 --> 00:32:46,960 >> ERIC欧陽:そして、他の 一部には、「AS」我々が使用する別名です。 563 00:32:46,960 --> 00:32:50,714 だから我々はときに気付いた場合 私たちは、フォームを作成し、 564 00:32:50,714 --> 00:32:52,380 あなたはそのURLに気付くでしょう:: routecreatePostを。 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 だから、実際に置換する URLように、私たちは一生懸命じゃない 567 00:32:58,330 --> 00:33:02,940 これらのコーディングそこらで我々はそれを変更することができます 一度、私たちは名前を変更したい場合は言う。 568 00:33:02,940 --> 00:33:06,055 代わりにポストスラッシュの 新しい、我々は、p、のようにやってみたい 569 00:33:06,055 --> 00:33:09,490 ちょうどきれいにする新しいスラッシュ 私たちのURLが少しアップする。 570 00:33:09,490 --> 00:33:14,740 私たちは、むしろ一つの場所でそれを変更するだろう すべての異なるファイル間でより。 571 00:33:14,740 --> 00:33:15,451 >> クール。 572 00:33:15,451 --> 00:33:15,950 それは良い。 573 00:33:15,950 --> 00:33:20,070 だから今我々は非常に 基本的なブログのプラットフォーム。 574 00:33:20,070 --> 00:33:24,260 我々は、おそらくそのようにボタンを追加したい ことを私たちは実際に新しい記事を作成することができます。 575 00:33:24,260 --> 00:33:27,850 だから我々は見てみると レイアウトマスターで、 576 00:33:27,850 --> 00:33:31,280 私たちは、ヘッダーを右項を持っている 私達はちょうど一番上にアップする定義したので。 577 00:33:31,280 --> 00:33:34,820 だから我々はにボタンを追加することができます ヘッダの先頭。 578 00:33:34,820 --> 00:33:43,950 >> だから我々は、実際には、index.blade.phpに行く場合は、 何がここの内部で何が起こるのかを定義です。 579 00:33:43,950 --> 00:33:46,970 したがって、このヘッダーを右セクション、 私たちがやろうとしている 580 00:33:46,970 --> 00:33:55,240 に行くためのボタンを追加されている ルート新しいポストによって定義されたURL。 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 ちょうどそれをクリーンアップし、作る 、それはかなり、すべてのブートストラップ 583 00:34:01,660 --> 00:34:04,630 我々はするつもりだ このデフォルトのボタン。 584 00:34:04,630 --> 00:34:07,794 ちょうど楽しみのためにそれが大にしてみましょう。 585 00:34:07,794 --> 00:34:09,969 >> そして、その中に、私たちはいくつかのテキストを入れることができます。 586 00:34:09,969 --> 00:34:14,030 しかし、どのようなブートストラップ 提供glyphiconsです。 587 00:34:14,030 --> 00:34:17,840 だから我々は実際にその中に追加することができます 私たちは前に見た素敵な鉛筆。 588 00:34:17,840 --> 00:34:20,570 589 00:34:20,570 --> 00:34:21,781 Glyphicon。 590 00:34:21,781 --> 00:34:22,489 Glyphicon-鉛筆。 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 だから、これは私たちが置くことができます テキストの代わりにアイコンで。 593 00:34:35,340 --> 00:34:38,960 今、私たちは停止しない場合、この このセクションを定義します。 594 00:34:38,960 --> 00:34:39,460 そして、ちょっと。 595 00:34:39,460 --> 00:34:45,000 私たちは、私たちにリンクする素敵なボタンがあります 直接ブログの記事ページを追加。 596 00:34:45,000 --> 00:34:46,659 >> だから我々は非常に単純なブログを持っている。 597 00:34:46,659 --> 00:34:49,710 私たちはそれにものを追加することができます。 598 00:34:49,710 --> 00:34:53,650 しかし、我々は一般的に何を期待 ブログからのコメントされている。 599 00:34:53,650 --> 00:34:57,340 私たちが持つことだから、本当に重要な、 他の誰かがウェブサイトを訪問した場合、言う 600 00:34:57,340 --> 00:35:00,620 そして実際にそのポストが好き 彼らは議論に従事することができます 601 00:35:00,620 --> 00:35:03,100 ページにアクセスして他の人と。 602 00:35:03,100 --> 00:35:07,050 だから我々は行くと作成しましょう 新しいデータベーステーブルと新しいモデル 603 00:35:07,050 --> 00:35:12,220 我々は関連付けることができるように ポストにコメント。 604 00:35:12,220 --> 00:35:17,370 >> したがって、最初のステップ、直前のような、 私たちは、マイグレーションを実行する必要があるということです。 605 00:35:17,370 --> 00:35:21,982 だから、前のように、私たちは何 PHPの職人の移行:作る。 606 00:35:21,982 --> 00:35:24,440 そして、我々は1を作成しましょう create_comments_tableと呼ばれる。 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 これは、ファイルが作成されます それは私たちの新しい移行を持っています。 609 00:35:36,080 --> 00:35:40,170 そして、私たちは次のように、するつもりだ 前、新しいテーブルを定義する。 610 00:35:40,170 --> 00:35:42,773 だから、スキーマ::作成 表には、コメントを呼ばれる。 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 ここでこの機能。 613 00:35:48,430 --> 00:35:51,620 そして、このテーブルの内側何 私たちはやろうとしている最初のものである、 614 00:35:51,620 --> 00:35:54,260 前のように、IDを割り当てる。 615 00:35:54,260 --> 00:35:56,552 IDをインクリメントします。 616 00:35:56,552 --> 00:36:05,440 >> 我々は、ユーザーが関連付けることができるようにするつもりだ 特定のコメントに自分の名前。 617 00:36:05,440 --> 00:36:10,080 私たちは、一部のコンテンツを持っているつもりだこと これは、テキストコンテンツと共に進む。 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 そして、ここで私たちがしようとしているもの やる別の何かである。 620 00:36:15,910 --> 00:36:23,620 私たちは、整数を作成しましょう そのはpost_idの呼び出している 621 00:36:23,620 --> 00:36:32,100 何ポスト​​を意味しようとしている 特定のコメントをして行く。 622 00:36:32,100 --> 00:36:35,410 >> さらに、我々は実際にするつもりだ この上で外部キー制約を設定します。 623 00:36:35,410 --> 00:36:37,750 だから、MySQLはそれを強制されます。 624 00:36:37,750 --> 00:36:39,840 我々はしようとしていない コメント番号を割り当てる 625 00:36:39,840 --> 00:36:44,440 私たちは持っていない場合は、5000を投稿する5 その上で5000の記事を持っていた。 626 00:36:44,440 --> 00:36:50,240 だから我々がここで何をすべきか、 我々は、外国にpost_idを行う 627 00:36:50,240 --> 00:37:02,046 と関連することが予定されている テーブルポストからIDフィールド。 628 00:37:02,046 --> 00:37:05,900 そして、我々は実際に何かをやる 他に役立つ、onDeleteです。 629 00:37:05,900 --> 00:37:11,180 >> だから我々はいくつかを削除した場合 データベースからのポスト、 630 00:37:11,180 --> 00:37:15,507 我々は、カスケードしたいこと 同様にコメントを削除します。 631 00:37:15,507 --> 00:37:18,090 それは非常に有用ではありませんので 私たちは、ポストのコメントを持つこと 632 00:37:18,090 --> 00:37:19,900 それは存在しません。 633 00:37:19,900 --> 00:37:23,764 そして最後に、前のように、私たちはしている これにタイムスタンプを設定しよう。 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 そして、前のように、私たちはするつもりだ 逆移行があることがある 636 00:37:33,510 --> 00:37:37,920 コメントの表をドロップする。 637 00:37:37,920 --> 00:37:40,070 >> だから今私たちが戻った場合 ここに、私たちはつもりだ 638 00:37:40,070 --> 00:37:43,110 この移行、職人の移行を実行します。 639 00:37:43,110 --> 00:37:46,400 そして今、これを適用だ 先ほど作成した移行。 640 00:37:46,400 --> 00:37:50,080 だから我々はphpMyAdminを見ると、 我々は今、実際には、やる 641 00:37:50,080 --> 00:37:53,210 持ってコメントテーブルを持っている 我々だけで指定された構造。 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 だから、前のように、私たちはしている 新しいモデルを作成する予定 644 00:37:59,610 --> 00:38:04,450 抽象SQLテーブルへ 先ほど作成した。 645 00:38:04,450 --> 00:38:05,450 >> それでは、新しいファイルを追加してみましょう。 646 00:38:05,450 --> 00:38:06,908 我々はそれをcomment.php呼び出すするつもりだ。 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 そして、これは実際にはかなりになるだろう わずかな変化との直接的な 649 00:38:15,490 --> 00:38:17,520 我々の前に持っていたものから。 650 00:38:17,520 --> 00:38:22,790 だから、クラスコメントは雄弁を拡張します。 651 00:38:22,790 --> 00:38:25,930 そして、私たちは何を行っている 定義され、ここで行うには 652 00:38:25,930 --> 00:38:31,360 ある機能 他のモデルとの関係。 653 00:38:31,360 --> 00:38:39,250 だから我々はポスト機能を持っているつもりだ ここに、この関係を返す。 654 00:38:39,250 --> 00:38:43,330 だから我々はそれを指定している これはポストに属し、 655 00:38:43,330 --> 00:38:49,200 1ポストがあることを言って このコメントが属する。 656 00:38:49,200 --> 00:38:53,917 >> これは実際にある必要があります モデルの資本P。 657 00:38:53,917 --> 00:38:56,500 そして今、ちょうど他のフリップで 側、我々はちょっと、それを言わなければならない。 658 00:38:56,500 --> 00:38:58,160 投稿は、コメントが。 659 00:38:58,160 --> 00:39:03,030 だから、私たちがやろうとしていることである パブリック関数のコメントを定義します。 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 そして、ここで返される これは多くのコメントがあります。 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 だから今魔法のように私たちはポストを持っているとき、 我々は、属性、コメントを得ることができます 664 00:39:22,010 --> 00:39:25,615 そしてそれはを移入します データベースからの情報。 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> それでは、実際に見ていきましょうと 私たちのビューファイルに新しい機能を追加 667 00:39:38,220 --> 00:39:43,600 我々は両方の表示ができるように とコメントを作成します。 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 だから我々は、新しいセクションを定義するつもりだ。 670 00:39:56,865 --> 00:39:59,890 ちょうどそれを分離してみましょう 水平ルール。 671 00:39:59,890 --> 00:40:04,065 セクションID = "コメント"。 672 00:40:04,065 --> 00:40:06,990 私たちがやろうとしている ここに、前のように、 673 00:40:06,990 --> 00:40:09,880 すべてのコメントを反復処理。 674 00:40:09,880 --> 00:40:12,960 だから、実際に我々はこれを行う方法です、 私が述べたように、かなり魔法。 675 00:40:12,960 --> 00:40:14,440 >> 私たちは、コメントを投稿するやる。 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 そして、我々はそれぞれのためにこれを行うことができます コメントのそれぞれをループ。 678 00:40:22,710 --> 00:40:25,740 そして、我々はするつもりだ何 やるのdivクラスコメントで、 679 00:40:25,740 --> 00:40:29,240 そして私たちは実際にするつもりだ このコメントをプリントアウト。 680 00:40:29,240 --> 00:40:34,150 だから、ちょっと表示 name--人のコメント 681 00:40:34,150 --> 00:40:38,080 誰がこのcomment--の投稿 ドットドットドット氏は述べています。 682 00:40:38,080 --> 00:40:41,240 私たちは、ブロックでこれを置くつもりだ 引用、ちょうどそれが素敵に見えるようにする。 683 00:40:41,240 --> 00:40:46,470 そして、コンテンツのブロック引用をコメント。 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 そして、foreachの。 686 00:40:50,892 --> 00:40:53,100 だから今、これはループに起こっている すべてのコメントを経て 687 00:40:53,100 --> 00:40:56,500 そのが関連している ポストのそれぞれと 688 00:40:56,500 --> 00:41:00,960 そしてそれらのコメントのそれぞれを表示する。 689 00:41:00,960 --> 00:41:05,120 私がダウンして別のセクションを追加するつもりだ ここで、私たちはコメントを追加することを可能にする。 690 00:41:05,120 --> 00:41:07,400 だから、H3クラス。 691 00:41:07,400 --> 00:41:09,580 ここにタイトルを置く。 692 00:41:09,580 --> 00:41:10,934 コメントを追加します。 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 そして、我々は新しいフォームを定義するつもりだ。 695 00:41:15,700 --> 00:41:18,730 >> だから、前のように、私たちはしている フォームアクションをするつもり。 696 00:41:18,730 --> 00:41:22,740 そしてここで、新しいアクションは、私たちがしているである その新しいコントローラーを定義しようとして 697 00:41:22,740 --> 00:41:26,770 私たちはポストに応答することを可能にする コメントを作成するための要求。 698 00:41:26,770 --> 00:41:33,365 だから、URL ::ルートCREATECOMMENT。 699 00:41:33,365 --> 00:41:37,730 私はここで、パラメータを渡すつもりです。 700 00:41:37,730 --> 00:41:40,380 そのポストのID 私たちは、上のコメントを作成している。 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 その後、この方法は フォームがポストになるだろう。 703 00:41:50,280 --> 00:41:57,240 >> 今、私たちは中に追加するつもりだ 二つのフィールド、フォームグループ。 704 00:41:57,240 --> 00:42:04,670 これはと入力することになるだろう 「名前」とクラス= "フォームコントロール"という名前を付け、 705 00:42:04,670 --> 00:42:14,250 タイプ= "テキスト"、とと プレースホルダー= "あなたの名前。" 706 00:42:14,250 --> 00:42:19,380 我々はまた、定義するつもりだ 別のフォームフィールド、その 707 00:42:19,380 --> 00:42:22,970 テキストであることを行っている 我々の前に持っていたとしてエリ​​ア。 708 00:42:22,970 --> 00:42:25,480 直前のように、コンテンツを呼び出す。 709 00:42:25,480 --> 00:42:31,160 クラス= "フォームコントロール。」 710 00:42:31,160 --> 00:42:41,660 プレースホルダは= "ここに書く。」 711 00:42:41,660 --> 00:42:44,100 >> そして、ちょうどその私たち 実際にそれを提出することができ、 712 00:42:44,100 --> 00:42:55,740 = "BTN-主要BTN。」タイプとクラスを提出 713 00:42:55,740 --> 00:42:57,005 フォームを閉じます。 714 00:42:57,005 --> 00:42:59,010 このアクションを閉じます。 715 00:42:59,010 --> 00:43:06,580 だから今我々はどこにこのページを更新した場合 私たちは、たとえば、特定のポストを持っている。 716 00:43:06,580 --> 00:43:10,310 私たちは、サーバを再起動する必要があります。 717 00:43:10,310 --> 00:43:12,340 PHPの業者は、サーブ。 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 これを再起動します。 720 00:43:18,334 --> 00:43:19,500 我々はルートを定義する必要があります。 721 00:43:19,500 --> 00:43:25,090 しかし、今のところ、ちょうどこのてみましょう 私たちは実際にお見せできるようにして 722 00:43:25,090 --> 00:43:28,750 どのページには次のようになり、その後、 私たちは実際にそのルートを作成します。 723 00:43:28,750 --> 00:43:29,250 だから、ちょっと。 724 00:43:29,250 --> 00:43:37,080 ここでは、この新しいフォームを使用しています 私たちは、コメントを作成できるように。 725 00:43:37,080 --> 00:43:39,950 それでは、実際に定義してみましょう コントローラ内の関数 726 00:43:39,950 --> 00:43:43,020 我々は、コメントを追加できるように。 727 00:43:43,020 --> 00:43:43,650 のは、戻りましょう。 728 00:43:43,650 --> 00:43:48,420 そしてblogcontroller.php内で、 私たちがやろうとしている 729 00:43:48,420 --> 00:43:51,620 新しい関数を作成している コメントを作成呼ばれる。 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> パブリック·ファンクションCREATECOMMENT。 732 00:43:57,040 --> 00:44:00,130 これは、単一のを持っているつもりされている パラメータ、ポストのID 733 00:44:00,130 --> 00:44:02,280 私たちがコメントしていること。 734 00:44:02,280 --> 00:44:04,790 そして、前のように、私たちはしている 最初の投稿を取得するつもり。 735 00:44:04,790 --> 00:44:10,790 だから、findOrfail IDを投稿してください。 736 00:44:10,790 --> 00:44:15,020 その後、我々はつもりだ 新しいコメントを作成します。 737 00:44:15,020 --> 00:44:18,880 だから=新しいコメントをコメント。 738 00:44:18,880 --> 00:44:26,820 名前=入力コメント::名前を取得。 739 00:44:26,820 --> 00:44:39,420 コメントの内容=同じ新しい行 入力の休憩に::コンテンツを取得。 740 00:44:39,420 --> 00:44:43,460 >> そして最後に、我々はする必要があるとしている ポストでこのコメントを関連付ける。 741 00:44:43,460 --> 00:44:47,230 だから我々は使用するつもりだ この機能、コメント、 742 00:44:47,230 --> 00:44:50,260 それは、私たちは保存することができます この関係。 743 00:44:50,260 --> 00:44:54,780 だから今このコメントはあります 自動的にポストID。 744 00:44:54,780 --> 00:44:57,640 我々はまた、それを設定することができます 手動で、これはある 745 00:44:57,640 --> 00:45:02,490 限り読み、より簡単に 関数が行くように。 746 00:45:02,490 --> 00:45:05,860 そして、我々は実行した後 私たちが何をしたいのか、この、 747 00:45:05,860 --> 00:45:10,840 にユーザーをリダイレクトしている viewPostで指定されたルート 748 00:45:10,840 --> 00:45:16,010 の配列を持つ ポストIDのパラメータ。 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> そして今、そのため、この実際に 関数は、我々はこのルートを定義する必要があります。 751 00:45:24,660 --> 00:45:27,126 ルート::ポスト。 752 00:45:27,126 --> 00:45:32,800 そして今、我々はこれを呼び出すするつもりだ ポストのIDスラッシュコメントをスラッシュ。 753 00:45:32,800 --> 00:45:36,725 Arrayには新しい機能を使用しています 先ほど作成した。 754 00:45:36,725 --> 00:45:37,350 BlogController。 755 00:45:37,350 --> 00:45:40,820 756 00:45:40,820 --> 00:45:44,770 CREATECOMMENTとしてCREATECOMMENT。 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 グレート。 759 00:45:50,120 --> 00:45:56,150 >> だから今私たちはこのページを更新し、うまくいけば場合、 とコメント、たとえば、デビッドマランに追加します。 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 「うまくいけば、これは動作します。」 762 00:46:03,920 --> 00:46:05,216 提出してください。 763 00:46:05,216 --> 00:46:09,050 我々は、実際にはありますか このブログの記事にコメントを。 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 クール。 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 だから今、私たちはかなり持っている 機能的なブログ投稿。 768 00:46:21,430 --> 00:46:23,180 私達はちょうどするつもりだ そのようにカップルの微調整を追加 769 00:46:23,180 --> 00:46:29,090 我々はいくつかのより有用があることを これらの記事の情報。 770 00:46:29,090 --> 00:46:32,780 >> だから我々は戻っへ行けば フロントページ、我々は意味がありません 771 00:46:32,780 --> 00:46:38,790 どのように多くのコメントの これらの記事のそれぞれで。 772 00:46:38,790 --> 00:46:41,340 だから我々は、実際に起こっているのか であるためには、我々のモデルの内側、 773 00:46:41,340 --> 00:46:51,250 可能にするヘルパー関数を定義する 私たちは、コメントの数を指定するには 774 00:46:51,250 --> 00:46:53,020 それは、特定のポストで行く。 775 00:46:53,020 --> 00:46:56,050 だから我々は作成しましょう ヘルパー関数。 776 00:46:56,050 --> 00:46:58,020 >> パブリック関数。 777 00:46:58,020 --> 00:46:58,770 GetNumCommentsStr。 778 00:46:58,770 --> 00:47:02,030 779 00:47:02,030 --> 00:47:07,180 番号を指定するため、文字列 それと一緒に行くのコメント。 780 00:47:07,180 --> 00:47:12,850 そして、私たちがやろうとしていることは言うです そのNUM =このコメントは数える。 781 00:47:12,850 --> 00:47:15,150 だから我々はカウントするつもりだ コメント数。 782 00:47:15,150 --> 00:47:22,900 この数が1に等しい場合と、私たちはしている わずか1コメントを返しに行く。 783 00:47:22,900 --> 00:47:28,890 そして、そうでなければ、我々は返すようにしたい numと、コメントを連結し、 784 00:47:28,890 --> 00:47:31,890 私たちは複数化が正しい得る。 785 00:47:31,890 --> 00:47:33,380 ただ、この単一引用符にする。 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 1つのコメント。 788 00:47:37,640 --> 00:47:41,140 >> そして今、我々はこの機能を使用することができます 直接私たちの見解の内側。 789 00:47:41,140 --> 00:47:44,510 だから我々は戻っへ行けば 私たちが作成した部分的なポスト、 790 00:47:44,510 --> 00:47:49,370 今、私たちは、実際にしたい コメントの数を表示。 791 00:47:49,370 --> 00:47:52,660 だから我々は何ができるかである ポストは、この関数を使用する 792 00:47:52,660 --> 00:47:57,230 私達はちょうどするために作成されていること コメントの数を表示。 793 00:47:57,230 --> 00:48:00,440 だから我々は今、それを更新した場合 ディスプレイは、実際には、い 794 00:48:00,440 --> 00:48:02,240 番号のコメント それはそれと一緒に行く。 795 00:48:02,240 --> 00:48:05,320 >> 私たちはあなたの場合は、空想になりたいと思った場合 実際に配布コードを見て、 796 00:48:05,320 --> 00:48:07,800 私たちは実際にリンクすることができます このコメントに。 797 00:48:07,800 --> 00:48:17,040 あなたが思い出して、私たちは内に定義された これはセクションIDのコメントを持っていることを表示します。 798 00:48:17,040 --> 00:48:22,460 だから我々は実際にリンクしたい場合 直接コメント欄に、どのような 799 00:48:22,460 --> 00:48:36,000 我々はここで行うだろうHREFです ルートviewPostのURL。 800 00:48:36,000 --> 00:48:40,550 ポストIDのアレイIDを渡します。 801 00:48:40,550 --> 00:48:46,140 そして、我々はに行きたい 特にコメントセクション。 802 00:48:46,140 --> 00:48:49,900 >> ここでの、タグを閉じてみましょう。 803 00:48:49,900 --> 00:48:52,950 だから今我々はこれを更新する場合は、 ページ、我々はこれをクリック。 804 00:48:52,950 --> 00:48:54,700 私たちは、直接行くよ コメントセクション。 805 00:48:54,700 --> 00:48:57,580 私たちは長いポストを持っていた場合、次のことができます 実際にこのバウンスをダウンを参照してください。 806 00:48:57,580 --> 00:49:02,668 しかし、あなたはそれがだとわかります しないページの上部に。 807 00:49:02,668 --> 00:49:04,090 クール。 808 00:49:04,090 --> 00:49:04,600 グレート。 809 00:49:04,600 --> 00:49:08,582 だから、かなり簡単だ シンプルなものの例 810 00:49:08,582 --> 00:49:09,790 あなたはLaravelで行うことができます。 811 00:49:09,790 --> 00:49:13,230 >> しかし、あなたはここで気づくことができます 私たちは多くのことをやった 812 00:49:13,230 --> 00:49:16,200 コー​​ドのかなり少ない量。 813 00:49:16,200 --> 00:49:19,420 Laravelは私たちが行うことができます 舞台裏でSQLクエリ。 814 00:49:19,420 --> 00:49:21,960 それは、公衆衛生を行います 私たち舞台裏のため。 815 00:49:21,960 --> 00:49:25,940 私たちはこれらの関係を行うことができます 非常に簡単に私たちが必要とすることなく、 816 00:49:25,940 --> 00:49:33,350 任意のSQLを実行するに結合文 何の記事にコメントを組み合わせる。 817 00:49:33,350 --> 00:49:36,480 私たちはこれを行うことを可能にする テンプレートの継承 818 00:49:36,480 --> 00:49:43,780 我々はこれらのネストを定義することができるように、 ファイル我々は自分自身を繰り返していないので、 819 00:49:43,780 --> 00:49:47,020 ちょうど私達があることを持っていたときのような ブログ投稿の表示 820 00:49:47,020 --> 00:49:50,770 我々はする必要がないこと コー​​ドをコピーして貼り付けます。 821 00:49:50,770 --> 00:49:55,450 >> そして、ここからあなたが構築することができます ますます複雑なアプリケーション。 822 00:49:55,450 --> 00:49:58,370 我々場合は、想像することができます ログインインを実装したかった、 823 00:49:58,370 --> 00:50:05,532 私たちは、第三者に持って来る、と言うことができる 私たちはそれを行うことを可能にするフレームワーク。 824 00:50:05,532 --> 00:50:07,490 それらの束があります 本当に、本当にしていること 825 00:50:07,490 --> 00:50:09,970 のように行うことができます偉大な、 パスワード回復。 826 00:50:09,970 --> 00:50:14,450 そして、それはあなたが満載です パスワードの電子メールをリセットします。 827 00:50:14,450 --> 00:50:18,260 私たちは、許可を実装することができます 私はポストを作成できるように、 828 00:50:18,260 --> 00:50:20,350 しかし、他の誰かがそれを編集することはできません。 829 00:50:20,350 --> 00:50:24,610 私たちは、実装することができます 投稿を削除する機能。 830 00:50:24,610 --> 00:50:28,160 >> しかし、あなたは私たちがかなり持っていることがわかります 多くのすべての基本的なコンポーネント 831 00:50:28,160 --> 00:50:31,640 本当に、本当にいくつかを構築するため、 ダイナミックでエキサイティングなWebアプリケーション。 832 00:50:31,640 --> 00:50:34,035 だからと、私たちは良いしていると思います。 833 00:50:34,035 --> 00:50:35,720 あなたたちは、ご質問がありますか? 834 00:50:35,720 --> 00:50:36,220 はい? 835 00:50:36,220 --> 00:50:38,090 >> SPEAKER 3:どのようにしてください 静的コンテンツを取得する? 836 00:50:38,090 --> 00:50:39,256 >> ERIC欧陽:静的コンテンツ。 837 00:50:39,256 --> 00:50:45,520 我々が持っていたときには、その前に見た このここで右、このレイアウトコンテンツ 838 00:50:45,520 --> 00:50:49,625 ビューのメーカー、我々はこれを持っていた その後この配列なし。 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index、我々はこれを持っていた 単に静的ファイルとして。 841 00:50:59,152 --> 00:51:00,860 だから我々は通過しない場合は、 それに沿って何でも、 842 00:51:00,860 --> 00:51:03,340 それだけで、直接HTMLをレンダリングします。 843 00:51:03,340 --> 00:51:09,240 しかし、我々はこの連想で渡す場合 動的にある柱の配列、 844 00:51:09,240 --> 00:51:12,950 データベースから引き出され、我々 ページを動的にすることができます。 845 00:51:12,950 --> 00:51:13,450 クール。 846 00:51:13,450 --> 00:51:14,830 その他の質問? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 SPEAKER 3:どのように比較するだろう おそらくいくつかの他のオプションにLaravel? 849 00:51:19,720 --> 00:51:20,525 ERIC欧陽:確かに。 850 00:51:20,525 --> 00:51:21,025 うん。 851 00:51:21,025 --> 00:51:23,430 だから、Laravelはのことをis-- 偉大なquestion-- 852 00:51:23,430 --> 00:51:26,190 Webフレームワークのための多くのオプションのいずれか。 853 00:51:26,190 --> 00:51:31,160 だから、Ruby on Railsには人気が1である。 854 00:51:31,160 --> 00:51:34,590 私はツイッターがために使用と考えてい Ruby on Railsを用いて実装。 855 00:51:34,590 --> 00:51:37,600 私は、彼らがあるので切り替えたと思います。 856 00:51:37,600 --> 00:51:40,780 FuelPHPと呼ばれる別の1があります。 857 00:51:40,780 --> 00:51:46,120 >> だから、Ruby on Railsのは、Ruby言語を使用します とMVC多くのものを実装しています 858 00:51:46,120 --> 00:51:48,200 私たちはここを参照してくださいこと。 859 00:51:48,200 --> 00:51:52,320 FuelPHPは別のPHPフレームワークです。 860 00:51:52,320 --> 00:51:54,490 Djangoは私のお気に入りの一つです。 861 00:51:54,490 --> 00:51:57,010 これは、Python用のWebフレームワークです。 862 00:51:57,010 --> 00:52:01,270 だから、Pythonでウェブアプリケーションを書くことができます。 863 00:52:01,270 --> 00:52:03,760 したがって、これらのオプションのトンがあります。 864 00:52:03,760 --> 00:52:06,170 >> とによるLaravel、私が思う、 大は私の好きな​​権利である 865 00:52:06,170 --> 00:52:08,232 今PHPのためという理由だけで コンポーネントの 866 00:52:08,232 --> 00:52:09,440 我々は、以前の話をすることを。 867 00:52:09,440 --> 00:52:11,910 それは有効になって作曲家。 868 00:52:11,910 --> 00:52:15,750 それは本当に、本当に含み 表情豊かなORMシステム。 869 00:52:15,750 --> 00:52:18,800 また、本当に素晴らしいテンプレートを持ってい 他人のいくつかの言語 870 00:52:18,800 --> 00:52:20,630 単に提供しない。 871 00:52:20,630 --> 00:52:21,400 および移行。 872 00:52:21,400 --> 00:52:23,432 移行は同様に素晴らしいです。 873 00:52:23,432 --> 00:52:24,860 クール? 874 00:52:24,860 --> 00:52:25,390 恐ろしい。 875 00:52:25,390 --> 00:52:27,560 ためによく、本当にありがとうございました このセミナーを見て、 876 00:52:27,560 --> 00:52:30,650 そして最終的なプロジェクトに幸運。 877 00:52:30,650 --> 00:52:31,616