1 00:00:00,000 --> 00:00:02,538 >> [Música tocando] 2 00:00:02,538 --> 00:00:10,800 3 00:00:10,800 --> 00:00:12,390 >> ERIC Ouyang: Ei, todo mundo. 4 00:00:12,390 --> 00:00:13,580 Bem-vindo. 5 00:00:13,580 --> 00:00:16,860 Esta é a construção dinâmica Web Apps com Laravel. 6 00:00:16,860 --> 00:00:18,290 Meu nome é Eric Ouyang. 7 00:00:18,290 --> 00:00:23,860 Eu sou um estudante de segundo ano estudando estudos sociais com um secundário em ciência da computação, 8 00:00:23,860 --> 00:00:27,290 e eu vivo em Adams Casa aqui em Harvard. 9 00:00:27,290 --> 00:00:33,340 >> Então Laravel, em sua forma mais core, é uma estrutura de aplicativo web MVC. 10 00:00:33,340 --> 00:00:38,265 Assim como o que vocês têm vindo a fazer com CS50 Finanças, 11 00:00:38,265 --> 00:00:42,480 Laravel é um framework que permite -lo a construir aplicações web dinâmicas. 12 00:00:42,480 --> 00:00:47,710 Assim, você pode pensar sobre isso em alguns sentidos como uma extensão do tipo de material 13 00:00:47,710 --> 00:00:50,470 você tem feito em CS50 Finanças, mas um sistema que é 14 00:00:50,470 --> 00:00:55,890 muito mais robusto, uma grande quantidade mais elegante, em alguns sentidos, 15 00:00:55,890 --> 00:00:57,870 e fornece uma grande quantidade de funcionalidade para você 16 00:00:57,870 --> 00:01:03,060 para construir bastante complexo aplicações web. 17 00:01:03,060 --> 00:01:05,010 Então, vamos passar por alguns das principais características, 18 00:01:05,010 --> 00:01:09,550 e depois vamos mergulhar em uma exemplo de construção de um blog 19 00:01:09,550 --> 00:01:12,500 aplicação com Laravel. 20 00:01:12,500 --> 00:01:16,700 >> Assim, uma das primeiras coisas que diferencia de tipo MVC de trabalho 21 00:01:16,700 --> 00:01:22,100 que você tem feito com CS50 é ele inclui um motor ORM. 22 00:01:22,100 --> 00:01:27,410 Então ORM significa objeto relacional. 23 00:01:27,410 --> 00:01:31,080 Então, isso permite que você construa uma camada de abstração 24 00:01:31,080 --> 00:01:35,230 entre a base de dados e seus controladores. 25 00:01:35,230 --> 00:01:39,150 Assim, ao contrário do CS50 Finanças onde você diretamente fazer consultas, 26 00:01:39,150 --> 00:01:44,790 a camada ORM permite abstrato que longe e criar 27 00:01:44,790 --> 00:01:48,085 modelos que são mais poderosos do que você pode diretamente com consultas SQL. 28 00:01:48,085 --> 00:01:50,590 29 00:01:50,590 --> 00:01:53,510 >> Outra coisa que é realmente útil é templates herdadas. 30 00:01:53,510 --> 00:01:58,990 Então, você vai notar no CS50 Finanças, você acaba reescrevendo um monte de coisas, 31 00:01:58,990 --> 00:02:03,150 onde lugares que você poderia potencialmente reutilizar coisas, você não é capaz de fazer. 32 00:02:03,150 --> 00:02:08,539 Então, aqui no Laravel, você pode usar o que é conhecido como o mecanismo de modelo de lâmina 33 00:02:08,539 --> 00:02:10,530 para criar um layout mestre. 34 00:02:10,530 --> 00:02:15,840 E a partir daí, você pode herdar de modo que os sub-modelos podem, na verdade, 35 00:02:15,840 --> 00:02:21,210 incluem elementos dentro esse modelo base maior. 36 00:02:21,210 --> 00:02:21,810 >> Migração. 37 00:02:21,810 --> 00:02:29,010 Portanto, esta é uma características bastante padrão em a maioria dos frameworks de aplicação web modernos. 38 00:02:29,010 --> 00:02:32,710 Então, o que lhe permite representar as alterações do esquema do banco de dados no código. 39 00:02:32,710 --> 00:02:39,200 Assim, sem vão dizer, phpMyAdmin, você pode realmente criar essas migrações 40 00:02:39,200 --> 00:02:44,660 onde representa o banco de dados alterações de esquema no código diretamente. 41 00:02:44,660 --> 00:02:48,070 E isso permite que você a-- especialmente Se você tem várias pessoas trabalhando 42 00:02:48,070 --> 00:02:52,650 na mesma teia application-- acompanhar essas mudanças, 43 00:02:52,650 --> 00:02:55,380 dizer no GitHub, ou algum outro repositório. 44 00:02:55,380 --> 00:03:00,880 >> Portanto, esta é realmente útil e mitiga a necessidade 45 00:03:00,880 --> 00:03:04,580 para, por exemplo, passar em torno de um monte de SQL lixeiras. 46 00:03:04,580 --> 00:03:07,140 E, finalmente, é Composer algo realmente útil 47 00:03:07,140 --> 00:03:09,840 que permite que você use outro código das pessoas para fazer coisas impressionantes. 48 00:03:09,840 --> 00:03:14,020 Então Laravel do estruturada como vários pacotes Composer. 49 00:03:14,020 --> 00:03:17,870 Então, dizer que se você queria trazer em um pacote de autenticação 50 00:03:17,870 --> 00:03:23,440 ou se você quiser trazer algum tipo de script gerador ou um administrador 51 00:03:23,440 --> 00:03:26,910 interface, você pode plug and play esses componentes com o compositor. 52 00:03:26,910 --> 00:03:30,470 53 00:03:30,470 --> 00:03:31,570 >> Então, vamos começar. 54 00:03:31,570 --> 00:03:35,185 Qualquer dúvida de você caras antes de começar? 55 00:03:35,185 --> 00:03:36,500 Não há perguntas? 56 00:03:36,500 --> 00:03:37,490 Com estilo. 57 00:03:37,490 --> 00:03:39,990 Assim, o primeiro passo é instalar Composer. 58 00:03:39,990 --> 00:03:43,590 Então Composer permite que você gerir essas dependências, 59 00:03:43,590 --> 00:03:47,770 se é o quadro Laravel ou alguma outra extensão de terceiros. 60 00:03:47,770 --> 00:03:50,400 O primeiro comando permite você baixe Composer, 61 00:03:50,400 --> 00:03:55,890 eo segundo comando permite que você movê-lo para a pasta bin locais 62 00:03:55,890 --> 00:04:01,340 de modo que você pode executar Composer diretamente através do terminal. 63 00:04:01,340 --> 00:04:05,405 >> Depois disso, vá em frente e criar um novo projeto Laravel. 64 00:04:05,405 --> 00:04:07,280 Na verdade, estamos indo para utilizar algum código de exemplo 65 00:04:07,280 --> 00:04:10,760 que eu coloquei para criar este blog. 66 00:04:10,760 --> 00:04:14,420 Mas se você está começando do zero, você usaria esse comando 67 00:04:14,420 --> 00:04:18,160 aqui em cima, compositor criar-projeto, laravel cortar laravel, e em seguida 68 00:04:18,160 --> 00:04:19,940 o nome do seu projeto. 69 00:04:19,940 --> 00:04:22,275 E que incluirá todos os códigos de distribuição 70 00:04:22,275 --> 00:04:23,733 para iniciar um novo projeto Laravel. 71 00:04:23,733 --> 00:04:28,870 Portanto, para sua CS50 projetos finais, você vai provavelmente vai querer usar esse comando. 72 00:04:28,870 --> 00:04:31,210 >> Mas vamos começar com isso. 73 00:04:31,210 --> 00:04:34,630 Portanto, uma vez que você fez que, você está indo para obter 74 00:04:34,630 --> 00:04:40,190 um número bastante grande de arquivos em blog50. 75 00:04:40,190 --> 00:04:43,840 Então vamos passar por alguns destes componentes. 76 00:04:43,840 --> 00:04:49,060 Você vai notar a esta rota diretório, há uma pasta app. 77 00:04:49,060 --> 00:04:52,960 Dentro da pasta app, há um par de votos pastas. 78 00:04:52,960 --> 00:04:56,330 De nota para começar é esta pasta config. 79 00:04:56,330 --> 00:04:59,210 Então, isso configura como sua aplicação web é 80 00:04:59,210 --> 00:05:04,350 vai, digamos, autenticar pessoas ou coisas de caixa ou conectar ao banco de dados. 81 00:05:04,350 --> 00:05:06,400 >> E o que é realmente útil é que Laravel 82 00:05:06,400 --> 00:05:09,130 permite configurar diferentes ambientes de desenvolvimento. 83 00:05:09,130 --> 00:05:12,090 Então, o que nós fizemos aqui é se vamos na pasta local, 84 00:05:12,090 --> 00:05:14,720 há um arquivo database.php. 85 00:05:14,720 --> 00:05:18,320 E você vai notar aqui que nós configurar uma conexão MySQL que 86 00:05:18,320 --> 00:05:22,230 permite que os indivíduos para se conectar para o servidor MySQL que é 87 00:05:22,230 --> 00:05:24,310 directamente sobre o aparelho CS50. 88 00:05:24,310 --> 00:05:26,980 E nós estamos conectando a um banco de dados que configurei chamado Blog50. 89 00:05:26,980 --> 00:05:31,390 90 00:05:31,390 --> 00:05:37,085 >> Então vamos realmente ir em frente e executar a versão de trabalho deste, 91 00:05:37,085 --> 00:05:39,710 só para ter uma noção do que o aplicação que estamos construindo 92 00:05:39,710 --> 00:05:41,390 parece. 93 00:05:41,390 --> 00:05:46,150 Então, eu tenho uma cópia do este Blog50 concluída. 94 00:05:46,150 --> 00:05:51,910 Então, na verdade, Laravel foi construído em um servidor 95 00:05:51,910 --> 00:05:53,910 que você pode executar diretamente a partir da linha de comando. 96 00:05:53,910 --> 00:05:56,900 Portanto, este é semelhante ao PSet antes, quando você, na verdade, 97 00:05:56,900 --> 00:06:00,580 construir o seu próprio servidor em C. Então, eles têm um construído em tão 98 00:06:00,580 --> 00:06:04,010 que você pode rodar seus aplicativos Laravel directamente a partir da linha de comando. 99 00:06:04,010 --> 00:06:11,650 >> Então, se nós fazemos php artesão servir, este vai lançar um servidor de desenvolvimento 100 00:06:11,650 --> 00:06:13,880 na porta 8000. 101 00:06:13,880 --> 00:06:18,250 Então, se vamos para host local 8.000, você vai perceber que, hey. 102 00:06:18,250 --> 00:06:20,800 Nós temos o nosso blog a funcionar. 103 00:06:20,800 --> 00:06:25,090 Assim Laravel aqui é gerar a primeira página do nosso blog. 104 00:06:25,090 --> 00:06:26,350 Aplicação muito simples. 105 00:06:26,350 --> 00:06:28,610 Mas há um par características muito bacana 106 00:06:28,610 --> 00:06:31,346 que ele fornece debaixo do capô. 107 00:06:31,346 --> 00:06:33,680 >> Então, do aplicativo de blog simples. 108 00:06:33,680 --> 00:06:36,430 Se quiséssemos criar um post, podemos clicar nesse botão. 109 00:06:36,430 --> 00:06:40,470 Podemos dizer: "Ei, pessoal. 110 00:06:40,470 --> 00:06:44,530 Este é realmente um divertido seminário ", por exemplo. 111 00:06:44,530 --> 00:06:46,560 E escrever algo aqui. 112 00:06:46,560 --> 00:06:48,180 Texto aqui. 113 00:06:48,180 --> 00:06:51,327 Se clicar em Enviar, você vai perceber que o nosso novo blog 114 00:06:51,327 --> 00:06:53,410 pós foi adicionado à primeira página do blog. 115 00:06:53,410 --> 00:06:56,532 116 00:06:56,532 --> 00:06:59,970 Se voltarmos aqui, você vai perceber que tem havido alguns comentários já 117 00:06:59,970 --> 00:07:01,160 no blog. 118 00:07:01,160 --> 00:07:03,630 Então, se nós rolar para baixo, você vai notar que Jonathan Tan diz 119 00:07:03,630 --> 00:07:08,020 que ele estava muito intrigado com este post. 120 00:07:08,020 --> 00:07:11,570 >> Então, nós falaremos sobre como objeto relacional permite 121 00:07:11,570 --> 00:07:16,668 você fazer essas relações em uma forma bastante transparente também. 122 00:07:16,668 --> 00:07:17,660 Com estilo. 123 00:07:17,660 --> 00:07:20,290 Qualquer dúvida sobre a funcionalidade de que vamos construir? 124 00:07:20,290 --> 00:07:22,850 125 00:07:22,850 --> 00:07:23,840 Com estilo. 126 00:07:23,840 --> 00:07:28,170 Então, vamos começar com verdade criar as tabelas de banco de dados. 127 00:07:28,170 --> 00:07:33,190 >> Então, lembra que em CS50 Finanças, você montar uma tabela para os usuários 128 00:07:33,190 --> 00:07:37,100 bem como para o stocks em sua carteira. 129 00:07:37,100 --> 00:07:41,040 Então, como mencionamos anteriormente, o que nós usamos em Laravel 130 00:07:41,040 --> 00:07:43,090 é algo conhecido como migrações. 131 00:07:43,090 --> 00:07:48,570 Então, se nós voltar para o código de distribuição aqui, 132 00:07:48,570 --> 00:07:51,790 o primeiro comando que é útil que Laravel fornece-lhe 133 00:07:51,790 --> 00:07:54,240 é este comando migrar. 134 00:07:54,240 --> 00:07:59,220 Então, podemos fazer php migrar artesão: fazer. 135 00:07:59,220 --> 00:08:01,760 Então, isso nos permite criar uma migração. 136 00:08:01,760 --> 00:08:03,710 >> E então nós vamos querer para criar uma migração 137 00:08:03,710 --> 00:08:07,050 chamado create_posts_table, que vai 138 00:08:07,050 --> 00:08:11,521 estar onde nós estamos indo para estar armazenando os nossos posts. 139 00:08:11,521 --> 00:08:14,690 E você vai notar aqui que ele é executado através de um código que, na verdade, 140 00:08:14,690 --> 00:08:17,580 gera um arquivo com um carimbo de tempo com isso. 141 00:08:17,580 --> 00:08:22,260 Então, se nós ir e olhar para Banco de Dados, vamos perceber sob Migrações 142 00:08:22,260 --> 00:08:24,830 que ele é criado um arquivo em branco para nós que 143 00:08:24,830 --> 00:08:30,100 tem código clichê com o nome que nós especificado, criar postos de mesa. 144 00:08:30,100 --> 00:08:31,670 >> E tem duas funções na mesma. 145 00:08:31,670 --> 00:08:40,539 Up é o que queremos para ser executado quando o migração é aplicada à base de dados. 146 00:08:40,539 --> 00:08:46,380 E para baixo é o que nós vamos fazer quando queremos reverter uma migração. 147 00:08:46,380 --> 00:08:49,890 Então, aqui vamos começar com a escrita esta migração. 148 00:08:49,890 --> 00:08:55,480 Portanto, há uma classe útil em Laravel chamado esquema. 149 00:08:55,480 --> 00:08:57,910 >> Então, nós estamos indo para executar Schema :: create. 150 00:08:57,910 --> 00:09:01,080 E nós estamos indo para criar uma tabela chamada postagens. 151 00:09:01,080 --> 00:09:05,980 E aqui nós aplicamos isso usando uma função. 152 00:09:05,980 --> 00:09:11,010 E dentro aqui, nós vamos realmente especificar o conteúdo de nossa mesa. 153 00:09:11,010 --> 00:09:14,860 Nós vamos criar um ID, que é auto-incremento. 154 00:09:14,860 --> 00:09:19,850 155 00:09:19,850 --> 00:09:24,350 >> Além disso, vamos para criar um campo que 156 00:09:24,350 --> 00:09:27,060 representa o título do nosso blog. 157 00:09:27,060 --> 00:09:29,880 158 00:09:29,880 --> 00:09:36,950 Nós também vamos criar um campo para armazenar o texto do nosso blog. 159 00:09:36,950 --> 00:09:40,600 E, finalmente, vamos para armazenar alguns timestamps 160 00:09:40,600 --> 00:09:44,690 para quando o nosso post foi criado e quando ele foi atualizado. 161 00:09:44,690 --> 00:09:46,240 E para baixo, é bastante simples. 162 00:09:46,240 --> 00:09:53,974 Tudo o que queremos fazer é cair a mesa que nós criamos. 163 00:09:53,974 --> 00:09:54,930 >> Ótimo. 164 00:09:54,930 --> 00:09:55,850 Alguma pergunta? 165 00:09:55,850 --> 00:09:59,730 166 00:09:59,730 --> 00:10:07,110 Portanto, agora se formos adiante e- na verdade, host local, 167 00:10:07,110 --> 00:10:09,640 deixe-me apagar o que tínhamos anteriormente. 168 00:10:09,640 --> 00:10:14,330 169 00:10:14,330 --> 00:10:15,190 Ir para Databases. 170 00:10:15,190 --> 00:10:17,640 Eu vou apagar o que tínhamos anteriormente. 171 00:10:17,640 --> 00:10:22,870 Largue isso e criar um novo banco de dados Blog50. 172 00:10:22,870 --> 00:10:24,930 Então agora o que o mágico parte é aqui que nós 173 00:10:24,930 --> 00:10:28,760 pode aplicar essas migrações diretamente ao banco de dados usando a linha de comando 174 00:10:28,760 --> 00:10:29,290 ferramenta. 175 00:10:29,290 --> 00:10:35,100 Então, se nós fazemos php artesão migrar, você vai perceber que, hey. 176 00:10:35,100 --> 00:10:38,320 É criada a tabela de migração, que nós vamos dar uma olhada em um pouco, 177 00:10:38,320 --> 00:10:40,540 e é aplicada esta primeira migração. 178 00:10:40,540 --> 00:10:43,860 179 00:10:43,860 --> 00:10:48,920 >> Então olhamos para Blog50, você notará que ele é criado duas mesas para nós. 180 00:10:48,920 --> 00:10:50,300 A primeira é esta tabela migrações. 181 00:10:50,300 --> 00:10:54,130 Então, se nós ver isso, você vai perceber que esta tabela é bastante simples. 182 00:10:54,130 --> 00:10:55,490 É só dizer que, hey. 183 00:10:55,490 --> 00:10:58,960 Nós aplicamos essa migração. 184 00:10:58,960 --> 00:11:01,470 Nós voltar e olhar nos postos. 185 00:11:01,470 --> 00:11:05,720 Você vai notar que a estrutura é exatamente o que lhe tinha pedido. 186 00:11:05,720 --> 00:11:07,350 Temos um ID auto-incremento. 187 00:11:07,350 --> 00:11:10,450 Nós temos uma string para armazenar o título, e um campo de texto 188 00:11:10,450 --> 00:11:11,450 para armazenar o conteúdo. 189 00:11:11,450 --> 00:11:14,040 190 00:11:14,040 --> 00:11:14,706 Ótimo. 191 00:11:14,706 --> 00:11:15,560 Com estilo. 192 00:11:15,560 --> 00:11:21,626 Qualquer dúvida sobre migrações trabalho, como podemos aplicá-las? 193 00:11:21,626 --> 00:11:22,126 Não? 194 00:11:22,126 --> 00:11:23,600 Com estilo. 195 00:11:23,600 --> 00:11:26,630 Então, agora nós estamos indo para ir em frente e, na verdade, criar o modelo. 196 00:11:26,630 --> 00:11:33,100 Por isso, queremos criar um modelo de mensagens que armazena uma abstração de banco de dados. 197 00:11:33,100 --> 00:11:41,040 Então, ao invés de fazer consultas MySQL diretamente, nós vamos criar. 198 00:11:41,040 --> 00:11:45,840 Portanto, temos de criar um pasta aqui chamados modelos. 199 00:11:45,840 --> 00:11:48,905 E aqui dentro, nós vamos criar um arquivo chamado post.php. 200 00:11:48,905 --> 00:11:52,280 201 00:11:52,280 --> 00:11:54,550 >> Dentro desse arquivo PHP, vamos criar 202 00:11:54,550 --> 00:12:00,590 um posto de classe que se estende eloqüente. 203 00:12:00,590 --> 00:12:08,950 Eloquente é o nome da ORM motor que fornece Laravel. 204 00:12:08,950 --> 00:12:12,799 E, aqui, poderíamos esperar que você realmente precisa escrever algum código. 205 00:12:12,799 --> 00:12:14,840 Nós estamos indo para escrever algum funções auxiliares posteriores. 206 00:12:14,840 --> 00:12:19,420 Mas fora da caixa, isso já vai reconhecer o que está no banco de dados 207 00:12:19,420 --> 00:12:24,770 e podemos acessar, digamos, o texto do nosso post de blog ou o título, 208 00:12:24,770 --> 00:12:29,230 e criar coisas diretamente com praticamente nenhum código que seja. 209 00:12:29,230 --> 00:12:31,110 >> Então, isso é um dos componentes mágicos. 210 00:12:31,110 --> 00:12:34,980 E o vento uma vez que esta classe é mais de pleno direito, 211 00:12:34,980 --> 00:12:40,480 vamos incluir informações sobre o que ao qual está relacionado, de modo que os comentários. 212 00:12:40,480 --> 00:12:42,310 Também criar uma função para que possamos realmente 213 00:12:42,310 --> 00:12:46,340 obter diretamente a URL de uma página post. 214 00:12:46,340 --> 00:12:46,840 Com estilo. 215 00:12:46,840 --> 00:12:47,881 Qualquer dúvida sobre isso? 216 00:12:47,881 --> 00:12:51,140 217 00:12:51,140 --> 00:12:51,832 Não. 218 00:12:51,832 --> 00:12:54,100 Com estilo. 219 00:12:54,100 --> 00:12:57,860 >> Então, agora, uma vez que temos o nosso modelo, quer criar um controlador que é 220 00:12:57,860 --> 00:13:02,340 capaz de interagir com estes modelos, e, subsequentemente, a base de dados. 221 00:13:02,340 --> 00:13:05,540 Então, se tomarmos uma olhada BlogController, você vai 222 00:13:05,540 --> 00:13:08,490 notar que não há muito aqui agora. 223 00:13:08,490 --> 00:13:13,220 Tudo o que há é uma função index que gera a home page, 224 00:13:13,220 --> 00:13:18,220 mas sem nada Ainda há a exibir. 225 00:13:18,220 --> 00:13:20,560 >> Assim, a primeira função que nós estamos indo para criar 226 00:13:20,560 --> 00:13:25,790 é aquele que nos permite para criar um blog. 227 00:13:25,790 --> 00:13:30,540 Então vamos declarar uma nova função chamada newPost. 228 00:13:30,540 --> 00:13:36,430 E aqui dentro simplesmente, vamos para definir o layout da página 229 00:13:36,430 --> 00:13:41,850 para ser uma versão render, se você se lembra de CS50, 230 00:13:41,850 --> 00:13:48,020 deste modelo chamado blog.new, que vamos criar em um pouco. 231 00:13:48,020 --> 00:13:53,170 >> Você notará aqui na linha seis que especificamos essa variável, layout. 232 00:13:53,170 --> 00:13:55,820 E se dermos uma olhada na pasta Views, 233 00:13:55,820 --> 00:14:01,640 há uma pasta Layouts, que inclui um arquivo HTML muito básico. 234 00:14:01,640 --> 00:14:04,680 E de nota, você notará que temos esse recipiente 235 00:14:04,680 --> 00:14:06,800 aqui que produz conteúdo. 236 00:14:06,800 --> 00:14:09,460 Então, dentro do nosso modelo o que nós vamos fazer 237 00:14:09,460 --> 00:14:16,180 é criar o que vai ser substituído diretamente dentro deste layout. 238 00:14:16,180 --> 00:14:20,060 >> Então nós dissemos que queremos renderizar um modelo chamado blog.new. 239 00:14:20,060 --> 00:14:23,790 Mas dentro do Blog, há ainda não este novo modelo. 240 00:14:23,790 --> 00:14:26,910 Então vamos criar um arquivo chamado new.blade.php. 241 00:14:26,910 --> 00:14:29,860 Isto diz que Laravel esse arquivo PHP deve 242 00:14:29,860 --> 00:14:31,720 ser prestado com o modelo de motor lâmina. 243 00:14:31,720 --> 00:14:39,510 244 00:14:39,510 --> 00:14:42,630 Portanto, esta é uma forma justa arquivo simples. 245 00:14:42,630 --> 00:14:46,690 Vai ser a forma pela qual nós realmente adicionar em um post de blog. 246 00:14:46,690 --> 00:14:49,220 >> Assim, a magia aqui a partir do herança é que, hey. 247 00:14:49,220 --> 00:14:52,950 Queremos especificar que o seção, a seção de conteúdo 248 00:14:52,950 --> 00:14:56,640 aqui, que é delineada porsection estop. 249 00:14:56,640 --> 00:15:02,260 Então, o que há entre aqui vai ser substituído no layout mestre. 250 00:15:02,260 --> 00:15:07,000 E aqui o que nós queremos fazer é muito simplesmente criar um novo arquivo HTML. 251 00:15:07,000 --> 00:15:08,690 Vamos apenas adicionar um título rápida. 252 00:15:08,690 --> 00:15:09,600 Adicionar um post de blog. 253 00:15:09,600 --> 00:15:12,110 254 00:15:12,110 --> 00:15:15,390 E dentro dele, nós somos vai criar um formulário. 255 00:15:15,390 --> 00:15:19,197 >> Esta forma vai ter uma ação. 256 00:15:19,197 --> 00:15:21,780 E isso vai ser algo que substituir mais tarde, 257 00:15:21,780 --> 00:15:24,200 e vamos ver como roteamento se encaixa aqui. 258 00:15:24,200 --> 00:15:33,600 Mas nós apenas estamos indo para definir, por enquanto que esta vai para um URL com o percurso 259 00:15:33,600 --> 00:15:34,860 de createPost. 260 00:15:34,860 --> 00:15:38,200 261 00:15:38,200 --> 00:15:40,320 E então isso vai ter método post. 262 00:15:40,320 --> 00:15:43,940 263 00:15:43,940 --> 00:15:47,590 Dentro aqui, nós vamos ter dois campos. 264 00:15:47,590 --> 00:15:49,170 Div class = "grupo-forma". 265 00:15:49,170 --> 00:15:55,806 >> Estamos usando a biblioteca Bootstrap CSS graciosamente fornecido pelo Twitter. 266 00:15:55,806 --> 00:15:57,720 Então, nós vamos criar dois destes. 267 00:15:57,720 --> 00:16:01,700 268 00:16:01,700 --> 00:16:05,970 Portanto, esta entrada é primeiro vai ser o título. 269 00:16:05,970 --> 00:16:08,437 Nome Então input = "title". 270 00:16:08,437 --> 00:16:09,270 Class = "formcontrol". 271 00:16:09,270 --> 00:16:13,540 272 00:16:13,540 --> 00:16:14,425 Type = "text". 273 00:16:14,425 --> 00:16:16,050 Eu estou indo para adicionar um espaço reservado = "Title". 274 00:16:16,050 --> 00:16:21,570 275 00:16:21,570 --> 00:16:26,140 >> E, em seguida, o segundo é vai ser uma área de texto. 276 00:16:26,140 --> 00:16:27,827 Name = "conteúdo". 277 00:16:27,827 --> 00:16:28,660 Class = "formcontrol". 278 00:16:28,660 --> 00:16:33,402 279 00:16:33,402 --> 00:16:34,610 E espaço reservado = "Escreva aqui". 280 00:16:34,610 --> 00:16:42,030 281 00:16:42,030 --> 00:16:43,480 Lá vamos nós. 282 00:16:43,480 --> 00:16:46,760 Finalmente, vamos adicionar um botão rápido envio. 283 00:16:46,760 --> 00:16:50,370 Type = "submit" class = "btn btn-primário". 284 00:16:50,370 --> 00:16:53,370 285 00:16:53,370 --> 00:16:55,340 Então, esses são todos características de Bootstrap assim 286 00:16:55,340 --> 00:16:58,510 que este pode ser colocado de uma forma que é 287 00:16:58,510 --> 00:17:03,730 presa para o usuário, em vez de HTML nu. 288 00:17:03,730 --> 00:17:06,250 >> Então, nós definimos o controlador aqui. 289 00:17:06,250 --> 00:17:08,930 Nós já definimos uma visão muito simples. 290 00:17:08,930 --> 00:17:12,339 Mas o que está faltando é do tecido conjuntivo. 291 00:17:12,339 --> 00:17:15,420 Então, neste momento, Laravel não tem idéia de como 292 00:17:15,420 --> 00:17:18,312 vamos realmente acessar este controlador. 293 00:17:18,312 --> 00:17:20,270 Portanto, este é definido em um arquivo chamado routes.php. 294 00:17:20,270 --> 00:17:22,780 295 00:17:22,780 --> 00:17:24,310 E, neste momento, temos uma rota. 296 00:17:24,310 --> 00:17:29,060 Que é quando vamos para o caminho de casa para o site, 297 00:17:29,060 --> 00:17:33,140 que vai processar o controlador de índice. 298 00:17:33,140 --> 00:17:38,880 Então, aqui o que nós precisamos fazer é implementar uma nova rota para nós para criar um post. 299 00:17:38,880 --> 00:17:41,910 >> Então, nós usamos este método obter, que especifica 300 00:17:41,910 --> 00:17:48,650 que, quando um usuário tenta obter este página-- especificamente 301 00:17:48,650 --> 00:17:52,850 o post cortar novo página-- o que nós vamos fazer 302 00:17:52,850 --> 00:18:02,060 é usar o controlador chamado BlogController novo post. 303 00:18:02,060 --> 00:18:03,460 O que acabamos de criar. 304 00:18:03,460 --> 00:18:08,090 E então nós vamos alias como newPost. 305 00:18:08,090 --> 00:18:17,460 306 00:18:17,460 --> 00:18:19,850 Nós vamos criar outro função em um pouco. 307 00:18:19,850 --> 00:18:23,520 Mas o que está aqui sob a chave ", como" é o que 308 00:18:23,520 --> 00:18:28,195 podemos substituir dentro nossos modelos da lâmina. 309 00:18:28,195 --> 00:18:32,390 310 00:18:32,390 --> 00:18:36,230 Então, por agora, vamos na verdade, também dizem rota. 311 00:18:36,230 --> 00:18:38,380 Então, nós também vamos para criar um controlador 312 00:18:38,380 --> 00:18:41,020 para que possamos criar essas mensagens. 313 00:18:41,020 --> 00:18:46,940 Portanto, se um usuário postagens para o pós página barra nova, o que nós vamos fazer 314 00:18:46,940 --> 00:18:51,350 é utiliza um controlador que vamos criar em breve 315 00:18:51,350 --> 00:18:56,160 chamado BlogController em createPost. 316 00:18:56,160 --> 00:19:01,929 E nós vamos fazer a réplica com este como createPost. 317 00:19:01,929 --> 00:19:03,380 Com estilo. 318 00:19:03,380 --> 00:19:05,811 >> Alguma pergunta? 319 00:19:05,811 --> 00:19:06,310 Com estilo. 320 00:19:06,310 --> 00:19:09,790 Então, vamos executar o que temos até agora. 321 00:19:09,790 --> 00:19:16,930 Então, se nós fazemos php artesão servir, vamos ver muitos erros. 322 00:19:16,930 --> 00:19:20,385 Portanto, parece que temos um erro de sintaxe em rotas linha 27. 323 00:19:20,385 --> 00:19:20,885 Ah. 324 00:19:20,885 --> 00:19:21,718 Faltando um ponto e vírgula. 325 00:19:21,718 --> 00:19:24,900 326 00:19:24,900 --> 00:19:32,870 Então, se vamos para 8000, você vai ver nada aqui ainda. 327 00:19:32,870 --> 00:19:34,740 Portanto, esta é a página inicial padrão. 328 00:19:34,740 --> 00:19:37,730 >> Mas se formos para deixar cortar novo, hey. 329 00:19:37,730 --> 00:19:40,425 Vai ser a forma que acabamos de criar. 330 00:19:40,425 --> 00:19:42,550 Neste momento, não temos implementado a funcionalidade 331 00:19:42,550 --> 00:19:44,060 de quando se pressiona o botão Enviar. 332 00:19:44,060 --> 00:19:47,110 Então, se eu clicar no Enviar botão, ele está indo para executar um erro. 333 00:19:47,110 --> 00:19:49,840 Mas vamos ao código que agora, precisamente o que nós 334 00:19:49,840 --> 00:19:54,840 quer fazer quando um usuário sustenta esta forma. 335 00:19:54,840 --> 00:19:55,770 >> Então, vamos fazer isso. 336 00:19:55,770 --> 00:19:57,380 Volte para o arquivo de controladores. 337 00:19:57,380 --> 00:20:00,180 O que vamos fazer é implementar esta nova função 338 00:20:00,180 --> 00:20:04,360 que nos permite criar um post. 339 00:20:04,360 --> 00:20:07,370 340 00:20:07,370 --> 00:20:08,990 Declare nova função. 341 00:20:08,990 --> 00:20:11,527 CreatePost função pública. 342 00:20:11,527 --> 00:20:14,610 E essa função vai ser um pouco mais sofisticado do que o que 343 00:20:14,610 --> 00:20:15,559 que tínhamos antes. 344 00:20:15,559 --> 00:20:18,350 Mas você vai ver aqui que não estamos vai realmente escrever qualquer SQL. 345 00:20:18,350 --> 00:20:20,980 O ORM, o Eloquent ORM, vai permitir 346 00:20:20,980 --> 00:20:26,400 -nos a fazer isso em alguns formas uma maneira mais elegante. 347 00:20:26,400 --> 00:20:29,140 >> Então vamos criar um novo post. 348 00:20:29,140 --> 00:20:34,120 E aqui estamos instanciar um novo objeto 349 00:20:34,120 --> 00:20:38,080 a partir do modelo que acabamos criado, o modelo post. 350 00:20:38,080 --> 00:20:44,450 E o que nós vamos fazer é definir o atributo título deste usando algo 351 00:20:44,450 --> 00:20:47,380 que começa a partir do servidor. 352 00:20:47,380 --> 00:20:52,060 Portanto, este é semelhante ao que que tínhamos antes em CS50 Finanças 353 00:20:52,060 --> 00:20:57,750 onde gostaríamos de fazer, usando o Super Global Post procurando título. 354 00:20:57,750 --> 00:21:01,600 >> Então Laravel fornece algumas saneamento e outros enfeites usando essa função auxiliar. 355 00:21:01,600 --> 00:21:07,610 Então, nós preferimos usar isso em vez desta forma bruta muito básico de PHP. 356 00:21:07,610 --> 00:21:17,430 E então o que vamos fazer é definir o conteúdo do mesmo para obter o conteúdo de entrada. 357 00:21:17,430 --> 00:21:20,429 358 00:21:20,429 --> 00:21:22,720 Na verdade, estamos indo para embrulhar isso em uma função útil 359 00:21:22,720 --> 00:21:31,820 PHP que fornece chamado nl2br, que Acontece novas linhas, NLS, em brs, pausas, 360 00:21:31,820 --> 00:21:35,822 para que possamos realmente ter diferentes pontos dentro dele. 361 00:21:35,822 --> 00:21:38,030 E, finalmente, o que vamos a fazer é salvar este post. 362 00:21:38,030 --> 00:21:41,686 Então, nós chamamos a função guardar para este modelo. 363 00:21:41,686 --> 00:21:43,800 Vamos salvar o post. 364 00:21:43,800 --> 00:21:49,970 E, finalmente, o que nós vamos fazer é redirecionar o usuário especificamente 365 00:21:49,970 --> 00:21:55,060 para o percurso que vamos criar em breve, alias, viewPost. 366 00:21:55,060 --> 00:22:00,435 E nós estamos indo para passar nos argumentos id, sendo o id deste novo post. 367 00:22:00,435 --> 00:22:04,280 368 00:22:04,280 --> 00:22:05,640 >> Ótimo. 369 00:22:05,640 --> 00:22:09,090 Então, agora, se realmente ir e executar este. 370 00:22:09,090 --> 00:22:11,370 Nós vamos adicionar um novo post. 371 00:22:11,370 --> 00:22:15,930 Vamos dizer que este é o seminário 50. 372 00:22:15,930 --> 00:22:17,620 E dizer, com certeza. 373 00:22:17,620 --> 00:22:18,240 ADSL. 374 00:22:18,240 --> 00:22:18,740 Tanto Faz. 375 00:22:18,740 --> 00:22:20,320 Algum tipo de conteúdo. 376 00:22:20,320 --> 00:22:21,180 E apresentá-lo. 377 00:22:21,180 --> 00:22:23,850 E nós vamos perceber que, hey. rotas não definido. 378 00:22:23,850 --> 00:22:32,340 Mas se dermos uma olhada e phpMyAdmin procurar ou não a nossa função 379 00:22:32,340 --> 00:22:34,370 fez nada. 380 00:22:34,370 --> 00:22:36,670 Olhe para os posts Blog50. 381 00:22:36,670 --> 00:22:37,720 Vamos perceber que, hey. 382 00:22:37,720 --> 00:22:43,530 Na verdade, nós apenas criar esse blog enviar com a data e hora, conforme especificado. 383 00:22:43,530 --> 00:22:46,600 384 00:22:46,600 --> 00:22:51,630 >> Então agora vamos voltar e realmente criar esta outra função no nosso controlador, 385 00:22:51,630 --> 00:22:54,790 especificamente o controlador viewPost. 386 00:22:54,790 --> 00:23:00,290 ViewPost função Então público. 387 00:23:00,290 --> 00:23:04,070 Então, aqui o que vamos fazer, em vez de ter parênteses vazios, 388 00:23:04,070 --> 00:23:08,800 vamos querer passar o ID de o post que estamos criando. 389 00:23:08,800 --> 00:23:12,800 E a partir daqui que nós vamos fazer é realmente consultar o banco de dados para ele. 390 00:23:12,800 --> 00:23:15,140 >> Então, se nós não postar, há uma função chamada 391 00:23:15,140 --> 00:23:18,860 Encontre que nos permite consultá-lo por ID. 392 00:23:18,860 --> 00:23:22,110 Especificamente, na verdade, nós vamos usar uma versão alternativa deste chamado 393 00:23:22,110 --> 00:23:27,880 Procure ou Fail, o que nos permite para sair fora desta função, 394 00:23:27,880 --> 00:23:34,700 lançar uma exceção se o ID passamos em não existe. 395 00:23:34,700 --> 00:23:37,500 E então nós vamos fazer algo semelhante ao que fizemos anteriormente 396 00:23:37,500 --> 00:23:41,100 onde vamos definir o conteúdo desta página para ser 397 00:23:41,100 --> 00:23:47,950 a versão processada desse novo modo de exibição que vamos criar, blog.view. 398 00:23:47,950 --> 00:23:51,030 >> E nós vamos passar para ele-- Assim como no CS50 renda 399 00:23:51,030 --> 00:23:56,645 function-- um dicionário de variáveis. 400 00:23:56,645 --> 00:23:59,860 401 00:23:59,860 --> 00:24:04,620 As chaves desta matriz associativa tornam-se variáveis ​​dentro do modelo. 402 00:24:04,620 --> 00:24:06,830 Então, nós estamos indo fazer pós post. 403 00:24:06,830 --> 00:24:12,474 Então passar indiretamente o cargo que temos consultado a partir do banco de dados. . 404 00:24:12,474 --> 00:24:14,390 Agora, o que nós vamos fazer é criar essa visão 405 00:24:14,390 --> 00:24:17,560 para que possamos realmente ver os posts do blog que temos construído. 406 00:24:17,560 --> 00:24:20,280 >> Então vamos criar um arquivo chamado view.blade.php. 407 00:24:20,280 --> 00:24:25,870 408 00:24:25,870 --> 00:24:29,640 Então, dentro desse modelo, o que nós vamos fazer 409 00:24:29,640 --> 00:24:39,700 é montar uma página simples que nos permite mostrar o conteúdo. 410 00:24:39,700 --> 00:24:44,280 Então nós fazemos parte, que é antes de conteúdo. 411 00:24:44,280 --> 00:24:46,800 Pare. 412 00:24:46,800 --> 00:24:53,920 E o que vamos o que fazer dentro aqui é 413 00:24:53,920 --> 00:24:56,930 escrever algum HTML para exibir esta página. 414 00:24:56,930 --> 00:25:03,590 >> Então, nós estamos indo para envolvê-lo com uma fantasia novo elemento HTML5 chamado artigo. 415 00:25:03,590 --> 00:25:05,790 E, aqui, nós vamos ter um cabeçalho onde 416 00:25:05,790 --> 00:25:12,190 vamos simplesmente ter um h1, que inclui o título do post. 417 00:25:12,190 --> 00:25:17,120 Então, aqui, se olharmos para este notação chaveta dupla, 418 00:25:17,120 --> 00:25:21,690 isso vai fazer essencialmente PHP echo título do post. 419 00:25:21,690 --> 00:25:25,630 Portanto, é uma abreviação útil Laravel que nos fornece. 420 00:25:25,630 --> 00:25:31,070 Então, nós estamos indo para usar esta notação em vez disso. 421 00:25:31,070 --> 00:25:40,220 >> E aqui, nós vamos também imprimir o conteúdo do mesmo. 422 00:25:40,220 --> 00:25:43,480 E, aqui, nós vamos fazer conteúdo do post. 423 00:25:43,480 --> 00:25:46,514 424 00:25:46,514 --> 00:25:50,660 E, na parte inferior do que somos vai fazer é criar um rodapé. 425 00:25:50,660 --> 00:25:57,690 E no rodapé, vamos primeira exibição quando este foi publicado. 426 00:25:57,690 --> 00:26:01,320 Portanto, este foi publicado em, criada no. 427 00:26:01,320 --> 00:26:07,996 >> E Laravel usa um muito bom biblioteca data chamado carbono. 428 00:26:07,996 --> 00:26:11,120 Assim, podemos realmente fazer algo chamado difforHumans, o que você viu anteriormente. 429 00:26:11,120 --> 00:26:14,360 Quando postamos. ele vai dizer: tipo, cinco segundos atrás. 430 00:26:14,360 --> 00:26:16,860 Portanto, este é um muito bom funcionalidade de Laravel. 431 00:26:16,860 --> 00:26:19,469 432 00:26:19,469 --> 00:26:21,385 E, finalmente, vamos para fechar esta rodapé. 433 00:26:21,385 --> 00:26:24,900 434 00:26:24,900 --> 00:26:31,450 >> Portanto, agora se voltar para Home Page vamos 435 00:26:31,450 --> 00:26:34,490 para ver nada aqui ainda porque não ter codificado a home page. 436 00:26:34,490 --> 00:26:40,962 Mas se formos para postar uma barra, vamos ver uma exceção. 437 00:26:40,962 --> 00:26:42,670 Alguém sabe por que vemos uma exceção? 438 00:26:42,670 --> 00:26:44,516 O que estamos perdendo? 439 00:26:44,516 --> 00:26:45,290 Qualquer idéias? 440 00:26:45,290 --> 00:26:48,050 441 00:26:48,050 --> 00:26:49,790 Então, o que nós fazemos mais cedo para nós, na verdade, 442 00:26:49,790 --> 00:26:52,285 para definir como nós conseguimos controladores em particular? 443 00:26:52,285 --> 00:26:54,895 444 00:26:54,895 --> 00:26:55,770 >> COLUNA 1: A rota? 445 00:26:55,770 --> 00:26:56,519 ERIC Ouyang: Yeah. 446 00:26:56,519 --> 00:26:58,070 Portanto, ainda temos de definir o percurso. 447 00:26:58,070 --> 00:26:59,794 Então vamos voltar aqui para routes.php. 448 00:26:59,794 --> 00:27:01,710 Você vai perceber que nós realmente não tenho definido 449 00:27:01,710 --> 00:27:05,010 como vamos chegar a este controlador. 450 00:27:05,010 --> 00:27:06,780 Então, agora vamos definir essa rota. 451 00:27:06,780 --> 00:27:09,280 É bastante simples, semelhante ao que fizemos anteriormente. 452 00:27:09,280 --> 00:27:13,910 Mas o que nós estamos indo para notar aqui é que nós vamos ter um espaço reservado. 453 00:27:13,910 --> 00:27:18,730 >> Então, se nós fazemos route.get pós barra ID. 454 00:27:18,730 --> 00:27:24,290 Então ID agora é o que vai ser passado para o controlador. 455 00:27:24,290 --> 00:27:27,820 Isso vai usar o controlador que acabamos 456 00:27:27,820 --> 00:27:33,560 criado, em BlogController viewPost. 457 00:27:33,560 --> 00:27:36,420 E nós vamos aliás esta como viewPost. 458 00:27:36,420 --> 00:27:46,544 459 00:27:46,544 --> 00:27:47,490 Ótimo. 460 00:27:47,490 --> 00:27:49,470 Então agora vamos criar esta rota. 461 00:27:49,470 --> 00:27:52,100 >> Portanto, agora se vamos aqui e atualize esta página, 462 00:27:52,100 --> 00:27:54,410 nós, de fato, têm o nosso novo blog. 463 00:27:54,410 --> 00:27:57,710 Então é isso que nós criamos mais cedo. 464 00:27:57,710 --> 00:28:01,320 Mesma página simples, mas mostra o blog que acabamos de criar. 465 00:28:01,320 --> 00:28:04,210 466 00:28:04,210 --> 00:28:04,760 Com estilo. 467 00:28:04,760 --> 00:28:08,880 E se nós realmente passar por todo processo de criação de um novo post, 468 00:28:08,880 --> 00:28:11,700 vamos perceber que tudo redireciona corretamente. 469 00:28:11,700 --> 00:28:12,950 Se eu disser: "Oi. 470 00:28:12,950 --> 00:28:15,710 Estou Jonathan Tan. " 471 00:28:15,710 --> 00:28:18,550 Diga: "Este é o meu blog." 472 00:28:18,550 --> 00:28:22,830 E apresentá-lo, isso vai criar este novo post com ID 2, 473 00:28:22,830 --> 00:28:28,920 que incrementos do que tínhamos anteriormente e apresenta-lo corretamente. 474 00:28:28,920 --> 00:28:30,760 Impressionante. 475 00:28:30,760 --> 00:28:32,930 >> Alguma pergunta? 476 00:28:32,930 --> 00:28:33,430 Sim? 477 00:28:33,430 --> 00:28:36,537 >> COLUNA 2: Será que Laravel handle sanitização e tudo para você? 478 00:28:36,537 --> 00:28:37,245 ERIC Ouyang: Sim. 479 00:28:37,245 --> 00:28:42,990 Então, quando nós vimos antes, quando fizemos entrada cólon cólon obter, 480 00:28:42,990 --> 00:28:47,720 que sanitates qualquer SQL injeções e outros enfeites 481 00:28:47,720 --> 00:28:51,660 que pode querer executar se nós somos um usuário mal-intencionado do site. 482 00:28:51,660 --> 00:28:54,115 Então Laravel lida com um monte de que, por trás dos bastidores. 483 00:28:54,115 --> 00:28:57,030 Boa pergunta. 484 00:28:57,030 --> 00:29:00,390 >> Então, vamos dar uma olhada na home page. 485 00:29:00,390 --> 00:29:03,220 486 00:29:03,220 --> 00:29:06,790 Então, se nós primeiro voltar para o controlador para a home page, 487 00:29:06,790 --> 00:29:08,740 você vai perceber que ele não faz muito aqui. 488 00:29:08,740 --> 00:29:11,620 Você vai notar que não estamos passando para este controlador 489 00:29:11,620 --> 00:29:13,830 nada de particularmente útil. 490 00:29:13,830 --> 00:29:16,660 É apenas este arquivo de índice. 491 00:29:16,660 --> 00:29:18,770 >> Então, vamos passar para este algo útil. 492 00:29:18,770 --> 00:29:21,450 E, especificamente, estamos vai passar nos postos. 493 00:29:21,450 --> 00:29:28,740 E Laravel nos permite fazer pós tudo, o que 494 00:29:28,740 --> 00:29:30,625 nos permitirá obter todas as mensagens. 495 00:29:30,625 --> 00:29:33,160 496 00:29:33,160 --> 00:29:35,730 Agora, se voltar para index.php, você vai ver, hey. 497 00:29:35,730 --> 00:29:37,060 Nada aqui ainda. 498 00:29:37,060 --> 00:29:41,290 Mas o que queremos fazer aqui é, na verdade, iterar, 499 00:29:41,290 --> 00:29:46,420 fazer um loop foreach sobre os lugares que nos permite imprimir as mensagens. 500 00:29:46,420 --> 00:29:53,180 >> Assim como postos foreach post, o que nós queremos fazer 501 00:29:53,180 --> 00:29:57,252 é imprimir o conteúdo do post. 502 00:29:57,252 --> 00:30:00,210 Mas uma coisa que você vai notar é que nós realmente escreveu a maior parte desse código 503 00:30:00,210 --> 00:30:01,370 já, em view.blade.php. 504 00:30:01,370 --> 00:30:04,070 505 00:30:04,070 --> 00:30:08,640 Então, o que nós vamos fazer é, na verdade, usar um recurso útil agradável de Lâmina 506 00:30:08,640 --> 00:30:11,300 e fatorar o código comum. 507 00:30:11,300 --> 00:30:12,570 Então vamos aqui. 508 00:30:12,570 --> 00:30:16,210 >> Nós vamos levar este conteúdo aqui mesmo, eo que nós vamos fazer 509 00:30:16,210 --> 00:30:18,170 é criar uma nova pasta. 510 00:30:18,170 --> 00:30:20,364 Vamos chamá-lo apenas Partials. 511 00:30:20,364 --> 00:30:22,530 E, aqui, nós vamos para criar uma post.blade.php. 512 00:30:22,530 --> 00:30:26,570 513 00:30:26,570 --> 00:30:33,100 Então, aqui, nós consignado aponta o caminho para que queremos exibir essas mensagens. 514 00:30:33,100 --> 00:30:38,690 E aqui o que vamos fazer em vez de realmente ter que HTML diretamente, 515 00:30:38,690 --> 00:30:41,530 vamos usar essa diretiva chamado incluem blog.partials.post. 516 00:30:41,530 --> 00:30:45,210 517 00:30:45,210 --> 00:30:50,635 >> E o que nós vamos fazer aqui é passar no post da página. 518 00:30:50,635 --> 00:30:57,076 519 00:30:57,076 --> 00:31:01,050 Portanto, agora se voltar aqui, nós vamos notar que a funcionalidade ainda é 520 00:31:01,050 --> 00:31:01,550 o mesmo. 521 00:31:01,550 --> 00:31:05,140 Mas agora temos este fatoramos código, este HTML. 522 00:31:05,140 --> 00:31:07,070 Assim, podemos usá-lo em Index. 523 00:31:07,070 --> 00:31:09,090 Então, aqui, isso é muito simples. 524 00:31:09,090 --> 00:31:17,870 Tudo o que fazemos é incluir blog.partials.post e array. 525 00:31:17,870 --> 00:31:20,845 E em algum lugar para antes, o que fazemos pós post. 526 00:31:20,845 --> 00:31:23,830 527 00:31:23,830 --> 00:31:28,182 >> Portanto, agora se voltar para o home page, vamos ver que, hey. 528 00:31:28,182 --> 00:31:30,515 Temos uma lista de todos os posts que tínhamos antes. 529 00:31:30,515 --> 00:31:34,640 530 00:31:34,640 --> 00:31:37,700 Podemos querer adicionar um pouco de "se" condições e as condições "senão" 531 00:31:37,700 --> 00:31:39,979 de modo que se não temos qualquer coisa no blog, 532 00:31:39,979 --> 00:31:41,520 queremos mostrar algo útil. 533 00:31:41,520 --> 00:31:42,570 Como, hey. 534 00:31:42,570 --> 00:31:44,340 Não há conteúdo ainda no blog. 535 00:31:44,340 --> 00:31:47,670 E se vocês realmente olhar para o código de distribuição no GitHub, 536 00:31:47,670 --> 00:31:50,100 você verá um exemplo de como podemos fazer isso. 537 00:31:50,100 --> 00:31:52,770 538 00:31:52,770 --> 00:31:54,110 >> Com estilo. 539 00:31:54,110 --> 00:31:54,890 Alguma pergunta? 540 00:31:54,890 --> 00:31:55,510 Sim. 541 00:31:55,510 --> 00:31:57,468 >> COLUNA 2: Eu acho que apenas uma questão fundamental. 542 00:31:57,468 --> 00:31:59,480 De volta ao percurso. 543 00:31:59,480 --> 00:32:00,230 ERIC Ouyang: Yeah. 544 00:32:00,230 --> 00:32:01,935 Se dermos uma olhada rotas. 545 00:32:01,935 --> 00:32:06,018 >> COLUNA 2: Onde é que a uses.blogcontroller a criar post, 546 00:32:06,018 --> 00:32:07,560 o que isso nos direcionar para? 547 00:32:07,560 --> 00:32:08,310 ERIC Ouyang: Yeah. 548 00:32:08,310 --> 00:32:08,550 Sim. 549 00:32:08,550 --> 00:32:09,716 >> COLUNA 2: Ou o que é isso-- 550 00:32:09,716 --> 00:32:12,620 ERIC Ouyang: Então, dê uma olhada, dizem por exemplo, esta rota bem aqui. 551 00:32:12,620 --> 00:32:17,190 A primeira parte é o real URL que o usuário vai para. 552 00:32:17,190 --> 00:32:19,930 E essa matriz aqui, matriz associativa, define 553 00:32:19,930 --> 00:32:24,520 como queremos ter a ato aplicação em resposta a ele. 554 00:32:24,520 --> 00:32:29,090 Então usa é o controlador, a função que nós 555 00:32:29,090 --> 00:32:31,610 quer chamar quando um usuário vai para este URL. 556 00:32:31,610 --> 00:32:35,190 Então viewPost aqui era um função que definimos no interior 557 00:32:35,190 --> 00:32:36,100 de BlogController-- 558 00:32:36,100 --> 00:32:37,160 >> COLUNA 2: Entendo. 559 00:32:37,160 --> 00:32:39,368 >> ERIC Ouyang: --so que nós pode realmente tornar um ponto de vista, 560 00:32:39,368 --> 00:32:42,590 realizar alguns cálculos, interagir com o banco de dados SQL. 561 00:32:42,590 --> 00:32:43,560 >> COLUNA 2: OK. 562 00:32:43,560 --> 00:32:46,960 >> ERIC Ouyang: E ​​depois o outro parte ", como" é um apelido que nós usamos. 563 00:32:46,960 --> 00:32:50,714 Então, se nós perceber quando criamos o formulário, 564 00:32:50,714 --> 00:32:52,380 você vai perceber que URL :: routecreatePost. 565 00:32:52,380 --> 00:32:55,000 566 00:32:55,000 --> 00:32:58,330 Então, ele substitui na real URL para que não são difíceis 567 00:32:58,330 --> 00:33:02,940 codificação destes em para que possamos alterá-lo uma vez, dizer se queria mudar o nome. 568 00:33:02,940 --> 00:33:06,055 Em vez de barra de pós novo, queremos fazer, como, p 569 00:33:06,055 --> 00:33:09,490 cortar novo só para limpar nossas URLs um pouco. 570 00:33:09,490 --> 00:33:14,740 Gostaríamos de mudá-lo em um local bastante do que em todos os diferentes ficheiros. 571 00:33:14,740 --> 00:33:15,451 >> Com estilo. 572 00:33:15,451 --> 00:33:15,950 Isso é bom. 573 00:33:15,950 --> 00:33:20,070 Portanto, agora temos um muito blog plataforma básica. 574 00:33:20,070 --> 00:33:24,260 Nós provavelmente vai querer adicionar em um botão para que podemos realmente criar novos postos. 575 00:33:24,260 --> 00:33:27,850 Então, se vamos dar uma olhada no Mestrado Layout, 576 00:33:27,850 --> 00:33:31,280 temos uma seção chamada Header Direito que acabamos de definir-se no topo. 577 00:33:31,280 --> 00:33:34,820 Assim, podemos adicionar botões para a parte superior do cabeçalho. 578 00:33:34,820 --> 00:33:43,950 >> Então, se vamos para index.blade.php, na verdade, fazer é definir o que se passa aqui dentro. 579 00:33:43,950 --> 00:33:46,970 Portanto, esta seção Cabeçalho direito, o que nós vamos fazer 580 00:33:46,970 --> 00:33:55,240 é adicionar um botão para ir para o URL definida pela rota novo post. 581 00:33:55,240 --> 00:33:58,270 582 00:33:58,270 --> 00:34:01,660 Só para limpá-lo e torná- -la bonita e todos Bootstrap, 583 00:34:01,660 --> 00:34:04,630 vamos fazer este botão padrão. 584 00:34:04,630 --> 00:34:07,794 Vamos apenas torná-lo grande para se divertir. 585 00:34:07,794 --> 00:34:09,969 >> E dentro dela, poderíamos colocar algum texto. 586 00:34:09,969 --> 00:34:14,030 Mas o que Bootstrap proporciona é glyphicons. 587 00:34:14,030 --> 00:34:17,840 Assim, podemos realmente adicionar em que bom lápis que vimos anteriormente. 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-lápis. 591 00:34:22,489 --> 00:34:25,449 592 00:34:25,449 --> 00:34:35,340 Então, isso vai nos permitir colocar num ícone em vez de texto. 593 00:34:35,340 --> 00:34:38,960 Agora, se não parar, este vai definir nesta seção. 594 00:34:38,960 --> 00:34:39,460 E, hey. 595 00:34:39,460 --> 00:34:45,000 Temos um botão agradável que nos liga diretamente ao adicionar uma página de blog. 596 00:34:45,000 --> 00:34:46,659 >> Portanto, temos um blog bastante simples. 597 00:34:46,659 --> 00:34:49,710 Podemos adicionar coisas a ele. 598 00:34:49,710 --> 00:34:53,650 Mas o que nós geralmente esperam de blogs está comentando. 599 00:34:53,650 --> 00:34:57,340 Então é muito importante para nós ter, dizer que, se alguém visita um website 600 00:34:57,340 --> 00:35:00,620 e realmente gosta do post que eles podem se envolver em discussão 601 00:35:00,620 --> 00:35:03,100 com outras pessoas que visitam a página. 602 00:35:03,100 --> 00:35:07,050 Então, nós estamos indo para ir e criar um nova tabela de banco de dados e um novo modelo 603 00:35:07,050 --> 00:35:12,220 para que possamos associar comenta com mensagens. 604 00:35:12,220 --> 00:35:17,370 >> Então o primeiro passo, como antes, é que precisamos para executar uma migração. 605 00:35:17,370 --> 00:35:21,982 Assim como antes, o que fazemos php artesão migre: fazer. 606 00:35:21,982 --> 00:35:24,440 E nós estamos indo para criar um chamado create_comments_table. 607 00:35:24,440 --> 00:35:29,520 608 00:35:29,520 --> 00:35:36,080 Isto irá criar um arquivo que tem a nossa nova migração. 609 00:35:36,080 --> 00:35:40,170 E nós vamos, como antes, definir uma nova tabela. 610 00:35:40,170 --> 00:35:42,773 Então Schema :: criar um tabela chamada comentários. 611 00:35:42,773 --> 00:35:47,410 612 00:35:47,410 --> 00:35:48,430 Esta função aqui. 613 00:35:48,430 --> 00:35:51,620 E dentro deste quadro que nós vamos fazer é em primeiro lugar, 614 00:35:51,620 --> 00:35:54,260 como antes, atribuir um ID. 615 00:35:54,260 --> 00:35:56,552 Incrementa ID. 616 00:35:56,552 --> 00:36:05,440 >> Nós estamos indo para permitir que os usuários a associar seu nome com um comentário particular. 617 00:36:05,440 --> 00:36:10,080 Nós vamos ter algum conteúdo que vai junto com isso, o conteúdo do texto. 618 00:36:10,080 --> 00:36:13,580 619 00:36:13,580 --> 00:36:15,910 E aqui o que nós estamos indo para fazer é algo diferente. 620 00:36:15,910 --> 00:36:23,620 Nós vamos criar um inteiro que é chamado post_id que 621 00:36:23,620 --> 00:36:32,100 vai significar que o pós um comentário especial vai com. 622 00:36:32,100 --> 00:36:35,410 >> Além disso, nós estamos indo realmente para definir uma restrição de chave estrangeira sobre o assunto. 623 00:36:35,410 --> 00:36:37,750 Então, MySQL irá impor isso. 624 00:36:37,750 --> 00:36:39,840 Nós não estamos tentando atribuir o número de comentário 625 00:36:39,840 --> 00:36:44,440 5 para postar 5.000 se não tivermos teve 5.000 posts sobre isso. 626 00:36:44,440 --> 00:36:50,240 Então, o que fazemos aqui, fazemos post_id estrangeira 627 00:36:50,240 --> 00:37:02,046 vai ser associado com o campo ID dos postos da tabela. 628 00:37:02,046 --> 00:37:05,900 E nós vamos realmente fazer alguma coisa outra coisa útil, é onDelete. 629 00:37:05,900 --> 00:37:11,180 >> Então, se nós apagar alguns postar a partir do banco de dados, 630 00:37:11,180 --> 00:37:15,507 que queremos cascata do exclui para comentários também. 631 00:37:15,507 --> 00:37:18,090 Porque não é muito útil para nós ter comentários sobre os posts 632 00:37:18,090 --> 00:37:19,900 que não existem. 633 00:37:19,900 --> 00:37:23,764 E, finalmente, como antes, nós estamos vai definir carimbos de tempo sobre este assunto. 634 00:37:23,764 --> 00:37:28,690 635 00:37:28,690 --> 00:37:33,510 E, como antes, nós vamos têm a migração inversa ser 636 00:37:33,510 --> 00:37:37,920 eliminando a tabela comentários. 637 00:37:37,920 --> 00:37:40,070 >> Portanto, agora se voltarmos para aqui, nós vamos 638 00:37:40,070 --> 00:37:43,110 para executar esta migração, artesão migrar. 639 00:37:43,110 --> 00:37:46,400 E agora ela é aplicada esta migração que acabamos de criar. 640 00:37:46,400 --> 00:37:50,080 Então, se nós um olhar para phpMyAdmin, o que fazemos, de fato, agora 641 00:37:50,080 --> 00:37:53,210 ter uma tabela de comentários que tem o estrutura que acabamos especificado. 642 00:37:53,210 --> 00:37:56,900 643 00:37:56,900 --> 00:37:59,610 Assim como antes, nós estamos vai criar um novo modelo 644 00:37:59,610 --> 00:38:04,450 abstrair a tabela de SQL que acabamos de criar. 645 00:38:04,450 --> 00:38:05,450 >> Então, vamos adicionar um novo arquivo. 646 00:38:05,450 --> 00:38:06,908 Vamos chamá-lo de comment.php. 647 00:38:06,908 --> 00:38:10,160 648 00:38:10,160 --> 00:38:15,490 E isso é realmente vai ser bastante simples, com uma ligeira mudança 649 00:38:15,490 --> 00:38:17,520 do que tínhamos antes. 650 00:38:17,520 --> 00:38:22,790 Assim, a classe Comentário estende eloqüente. 651 00:38:22,790 --> 00:38:25,930 E o que vamos fazer aqui é definir 652 00:38:25,930 --> 00:38:31,360 uma função que é a relacionamento com outros modelos. 653 00:38:31,360 --> 00:38:39,250 Então, nós vamos ter uma função de pós aqui que retorna este relacionamento. 654 00:38:39,250 --> 00:38:43,330 Então, nós estamos especificando que isto pertence a postar, 655 00:38:43,330 --> 00:38:49,200 dizendo que há um posto que este comentário pertence. 656 00:38:49,200 --> 00:38:53,917 >> Esta tem de ser efectivamente P maiúsculo para o modelo. 657 00:38:53,917 --> 00:38:56,500 E agora apenas no outro aleta lado, temos a dizer que, hey. 658 00:38:56,500 --> 00:38:58,160 Posts tem comentários. 659 00:38:58,160 --> 00:39:03,030 Então, o que nós vamos fazer é definir comentários de função pública. 660 00:39:03,030 --> 00:39:07,100 661 00:39:07,100 --> 00:39:13,620 E aqui é devolvido Isto tem muitas Comment. 662 00:39:13,620 --> 00:39:16,630 663 00:39:16,630 --> 00:39:22,010 Então agora magicamente quando temos um post, podemos obter os comentários de atributos 664 00:39:22,010 --> 00:39:25,615 e ele vai preenchê-lo com o informações da base de dados. 665 00:39:25,615 --> 00:39:32,950 666 00:39:32,950 --> 00:39:38,220 >> Então vamos realmente passar e adicionar um novo recurso para o nosso arquivo de visão 667 00:39:38,220 --> 00:39:43,600 para que possamos tanto exibição e criar comentários. 668 00:39:43,600 --> 00:39:54,010 669 00:39:54,010 --> 00:39:56,865 Então, vamos definir uma nova seção. 670 00:39:56,865 --> 00:39:59,890 Vamos apenas separá-lo com uma regra horizontal. 671 00:39:59,890 --> 00:40:04,065 Seção id = "Comentários". 672 00:40:04,065 --> 00:40:06,990 O que nós vamos fazer aqui é, como antes, 673 00:40:06,990 --> 00:40:09,880 percorrer todos os comentários. 674 00:40:09,880 --> 00:40:12,960 Então, na verdade, como fazemos isto é, como já referi, bastante mágico. 675 00:40:12,960 --> 00:40:14,440 >> Fazemos postar comentários. 676 00:40:14,440 --> 00:40:17,410 677 00:40:17,410 --> 00:40:22,710 E então nós podemos fazer isso para cada loop sobre cada um dos comentários. 678 00:40:22,710 --> 00:40:25,740 E o que nós estamos indo para fazer é classe div comentário, 679 00:40:25,740 --> 00:40:29,240 e nós estamos indo para realmente imprimir este comentário. 680 00:40:29,240 --> 00:40:34,150 Então mostrar que hey, comentar nome-- a pessoa 681 00:40:34,150 --> 00:40:38,080 que publicou este comment-- diz dot dot dot. 682 00:40:38,080 --> 00:40:41,240 Vamos colocar isso em um bloco Citação, apenas para torná-la agradável. 683 00:40:41,240 --> 00:40:46,470 E em seguida, comentar bloco de citação de conteúdo. 684 00:40:46,470 --> 00:40:49,790 685 00:40:49,790 --> 00:40:50,892 E foreach. 686 00:40:50,892 --> 00:40:53,100 Portanto, agora é que isto vai fazer um loop através de todas as opiniões 687 00:40:53,100 --> 00:40:56,500 que está associada com cada um dos postos 688 00:40:56,500 --> 00:41:00,960 e exibir cada um desses comentários. 689 00:41:00,960 --> 00:41:05,120 Eu estou indo para adicionar uma outra seção para baixo aqui, o que nos permite adicionar um comentário. 690 00:41:05,120 --> 00:41:07,400 Classe Então h3. 691 00:41:07,400 --> 00:41:09,580 Coloque um título aqui. 692 00:41:09,580 --> 00:41:10,934 Adicionar um comentário. 693 00:41:10,934 --> 00:41:13,886 694 00:41:13,886 --> 00:41:15,700 E nós vamos definir uma nova forma. 695 00:41:15,700 --> 00:41:18,730 >> Assim como antes, nós estamos vai fazer ação de formulário. 696 00:41:18,730 --> 00:41:22,740 E aqui, a nova ação é que estamos indo para definir um novo controlador que 697 00:41:22,740 --> 00:41:26,770 permite-nos responder para postar pedidos de criação de comentários. 698 00:41:26,770 --> 00:41:33,365 Então URL :: rota createComment. 699 00:41:33,365 --> 00:41:37,730 Vou passar no parâmetro aqui. 700 00:41:37,730 --> 00:41:40,380 O ID do post que estamos criando comentar. 701 00:41:40,380 --> 00:41:45,340 702 00:41:45,340 --> 00:41:50,280 E, em seguida, o método do presente forma vai ser post. 703 00:41:50,280 --> 00:41:57,240 >> Agora vamos adicionar em a dois campos, grupo formulário. 704 00:41:57,240 --> 00:42:04,670 Esta vai ser uma entrada com o nome "nome" e class = "-control forma", 705 00:42:04,670 --> 00:42:14,250 type = "text", e com o espaço reservado = "Seu nome". 706 00:42:14,250 --> 00:42:19,380 Nós também vamos definir outro campo de formulário, que 707 00:42:19,380 --> 00:42:22,970 vai ser um texto área como tínhamos antes. 708 00:42:22,970 --> 00:42:25,480 Assim como antes, chamá-lo de conteúdo. 709 00:42:25,480 --> 00:42:31,160 Class = "-control forma." 710 00:42:31,160 --> 00:42:41,660 Espaço reservado = "Escreva aqui." 711 00:42:41,660 --> 00:42:44,100 >> E só assim que nós realmente pode submetê-lo, 712 00:42:44,100 --> 00:42:55,740 apresentar tipo e class = "btn btn-primário." 713 00:42:55,740 --> 00:42:57,005 Feche o formulário. 714 00:42:57,005 --> 00:42:59,010 Feche essa ação. 715 00:42:59,010 --> 00:43:06,580 Então, agora, se atualize esta página onde temos, digamos, um post especial. 716 00:43:06,580 --> 00:43:10,310 Nós temos que reiniciar o servidor. 717 00:43:10,310 --> 00:43:12,340 PHP artesão servir. 718 00:43:12,340 --> 00:43:15,630 719 00:43:15,630 --> 00:43:18,334 Reinicie isso. 720 00:43:18,334 --> 00:43:19,500 Temos de definir o percurso. 721 00:43:19,500 --> 00:43:25,090 Mas, por agora, vamos aproveitar esta para fora, para que possamos realmente mostrar-lhe 722 00:43:25,090 --> 00:43:28,750 o que a página parece, e, em seguida, vamos realmente criar essa rota. 723 00:43:28,750 --> 00:43:29,250 Então, hey. 724 00:43:29,250 --> 00:43:37,080 Nós temos esta nova forma aqui para que possamos criar comentários. 725 00:43:37,080 --> 00:43:39,950 Então vamos realmente definir um função dentro do controlador 726 00:43:39,950 --> 00:43:43,020 para que possamos adicionar comentários. 727 00:43:43,020 --> 00:43:43,650 Vamos voltar. 728 00:43:43,650 --> 00:43:48,420 E dentro blogcontroller.php, o que nós vamos fazer 729 00:43:48,420 --> 00:43:51,620 é criar uma nova função chamado criar comentário. 730 00:43:51,620 --> 00:43:54,220 731 00:43:54,220 --> 00:43:57,040 >> CreateComment função pública. 732 00:43:57,040 --> 00:44:00,130 Isto vai ter um único parâmetro, o ID dos postos 733 00:44:00,130 --> 00:44:02,280 que estamos comentando. 734 00:44:02,280 --> 00:44:04,790 E, como antes, estamos vai pegar o primeiro post. 735 00:44:04,790 --> 00:44:10,790 Então postar, id findOrfail. 736 00:44:10,790 --> 00:44:15,020 Depois, vamos para criar um novo comentário. 737 00:44:15,020 --> 00:44:18,880 Então comentar = new Comment. 738 00:44:18,880 --> 00:44:26,820 Comentário name = Input :: get nome. 739 00:44:26,820 --> 00:44:39,420 Conteúdo Comment = a mesma linha nova em intervalos de entrada :: obter conteúdo. 740 00:44:39,420 --> 00:44:43,460 >> E, finalmente, vamos ter que associar este comentário com o post. 741 00:44:43,460 --> 00:44:47,230 Então, nós estamos indo para usar esta função, comentários, 742 00:44:47,230 --> 00:44:50,260 que nos permite economizar esta relação. 743 00:44:50,260 --> 00:44:54,780 Então agora este comentário terá automaticamente o ID post. 744 00:44:54,780 --> 00:44:57,640 Nós também pode configurá-lo manualmente, mas esta é 745 00:44:57,640 --> 00:45:02,490 mais fácil de ler, tanto como a função vai. 746 00:45:02,490 --> 00:45:05,860 E depois nós realizamos isso, o que nós queremos fazer 747 00:45:05,860 --> 00:45:10,840 é redirecionar o usuário para o rota especificada por viewPost 748 00:45:10,840 --> 00:45:16,010 com a matriz com o parâmetro da ID post. 749 00:45:16,010 --> 00:45:20,360 750 00:45:20,360 --> 00:45:24,660 >> E agora, de modo que este, na verdade, funções, precisamos definir esta rota. 751 00:45:24,660 --> 00:45:27,126 Route :: post. 752 00:45:27,126 --> 00:45:32,800 E agora nós vamos chamar esse pós cortar ID barra comentário. 753 00:45:32,800 --> 00:45:36,725 Matriz usa a nova função que acabamos de criar. 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 como createComment. 757 00:45:44,770 --> 00:45:47,430 758 00:45:47,430 --> 00:45:50,120 Ótimo. 759 00:45:50,120 --> 00:45:56,150 >> Então, agora espero que se atualize esta página e adicionar em um comentário, digamos, David Malan. 760 00:45:56,150 --> 00:46:00,630 761 00:46:00,630 --> 00:46:03,920 "Esperamos que isso funciona". 762 00:46:03,920 --> 00:46:05,216 Enviar. 763 00:46:05,216 --> 00:46:09,050 Nós, de fato, ter um comentar este post. 764 00:46:09,050 --> 00:46:13,760 765 00:46:13,760 --> 00:46:14,260 Com estilo. 766 00:46:14,260 --> 00:46:16,790 767 00:46:16,790 --> 00:46:21,430 Portanto, agora temos um bastante post funcional. 768 00:46:21,430 --> 00:46:23,180 Nós apenas estamos indo para adicionar um par de ajustes de modo 769 00:46:23,180 --> 00:46:29,090 que temos um pouco mais útil informações sobre essas mensagens. 770 00:46:29,090 --> 00:46:32,780 >> Então, se nós voltar para o primeira página, não temos sentido 771 00:46:32,780 --> 00:46:38,790 de quantos comentários são em cada uma destas mensagens. 772 00:46:38,790 --> 00:46:41,340 Então, o que nós estamos indo realmente a fazer é, dentro do nosso modelo, 773 00:46:41,340 --> 00:46:51,250 definir uma função auxiliar que permite -nos para especificar o número de comentários 774 00:46:51,250 --> 00:46:53,020 que ir com um post especial. 775 00:46:53,020 --> 00:46:56,050 Então, nós estamos indo para criar uma função auxiliar. 776 00:46:56,050 --> 00:46:58,020 >> Função Pública. 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 Assim, uma seqüência de caracteres que especifica o número de comentários que ir junto com ele. 780 00:47:07,180 --> 00:47:12,850 E o que nós vamos fazer é dizer que num = esta comentários contar. 781 00:47:12,850 --> 00:47:15,150 Então, nós estamos indo para contar o número de comentários. 782 00:47:15,150 --> 00:47:22,900 E se esse número for igual a 1, nós somos só vai retornar 1 comentário. 783 00:47:22,900 --> 00:47:28,890 E, em seguida, caso contrário, queremos voltar a concatenação de num e comentários, 784 00:47:28,890 --> 00:47:31,890 assim que nós começamos a pluralização correta. 785 00:47:31,890 --> 00:47:33,380 Basta fazer isso uma única citação. 786 00:47:33,380 --> 00:47:36,040 787 00:47:36,040 --> 00:47:37,640 Um comentário. 788 00:47:37,640 --> 00:47:41,140 >> E agora nós podemos usar esta função diretamente dentro do nosso ponto de vista. 789 00:47:41,140 --> 00:47:44,510 Então, se nós voltar para o mensagens parciais que criamos, 790 00:47:44,510 --> 00:47:49,370 agora queremos realmente exibir o número de comentários. 791 00:47:49,370 --> 00:47:52,660 Então, o que nós podemos fazer é post, usar esta função 792 00:47:52,660 --> 00:47:57,230 que acabamos de criar a exibir o número de comentários. 793 00:47:57,230 --> 00:48:00,440 Então, se nós agora atualizar, ele faz, de fato, display 794 00:48:00,440 --> 00:48:02,240 os comentários número que ir junto com ele. 795 00:48:02,240 --> 00:48:05,320 >> Se quiséssemos ser extravagante, se você realmente olhar para o código de distribuição, 796 00:48:05,320 --> 00:48:07,800 podemos realmente link isso para os comentários. 797 00:48:07,800 --> 00:48:17,040 Se bem se lembram, nós definido dentro do ver que isso não tem comentários seção de identificação. 798 00:48:17,040 --> 00:48:22,460 Então, se nós realmente queria vincular directamente para a secção de comentários, o que 799 00:48:22,460 --> 00:48:36,000 faríamos aqui é a href URL do viewPost rota. 800 00:48:36,000 --> 00:48:40,550 Passe no ID matriz de pós ID. 801 00:48:40,550 --> 00:48:46,140 E então nós queremos ir para especificamente a seção de comentários. 802 00:48:46,140 --> 00:48:49,900 >> Aqui vamos fechar a A tag. 803 00:48:49,900 --> 00:48:52,950 Então, agora, se atualize esta página, clique sobre este assunto. 804 00:48:52,950 --> 00:48:54,700 Vamos ir diretamente para a seção de comentários. 805 00:48:54,700 --> 00:48:57,580 Se tivéssemos um post mais longo, você pode realmente ver este salto baixo. 806 00:48:57,580 --> 00:49:02,668 Mas você vai perceber que ele é não no topo da página. 807 00:49:02,668 --> 00:49:04,090 Com estilo. 808 00:49:04,090 --> 00:49:04,600 Ótimo. 809 00:49:04,600 --> 00:49:08,582 Então isso é um bastante simples exemplo de algo simples 810 00:49:08,582 --> 00:49:09,790 que você pode fazer com Laravel. 811 00:49:09,790 --> 00:49:13,230 >> Mas você pode notar aqui que nós fizemos um monte de coisas 812 00:49:13,230 --> 00:49:16,200 com bastante pequena quantidade de código. 813 00:49:16,200 --> 00:49:19,420 Laravel nos permite fazer a Consultas SQL nos bastidores. 814 00:49:19,420 --> 00:49:21,960 Ele faz o saneamento para nós nos bastidores. 815 00:49:21,960 --> 00:49:25,940 Nos permite fazer essas relações muito facilmente, sem nós, precisando 816 00:49:25,940 --> 00:49:33,350 para fazer qualquer SQL juntar declarações à combinar observações com o que os postes. 817 00:49:33,350 --> 00:49:36,480 Permite-nos fazer isso herança de modelos 818 00:49:36,480 --> 00:49:43,780 para que possamos definir estes nidificação arquivos por isso não estamos nos repetindo, 819 00:49:43,780 --> 00:49:47,020 assim como quando tivemos que exibição dos posts do blog 820 00:49:47,020 --> 00:49:50,770 que não temos a copie e cole o código. 821 00:49:50,770 --> 00:49:55,450 >> E a partir daqui você pode construir aplicações cada vez mais complicados. 822 00:49:55,450 --> 00:49:58,370 Você pode imaginar se queria implementar log-in, 823 00:49:58,370 --> 00:50:05,532 poderíamos dizer, trazer um terceiro estrutura que nos permite fazer isso. 824 00:50:05,532 --> 00:50:07,490 Há um monte deles que são muito, muito 825 00:50:07,490 --> 00:50:09,970 grande que pode fazer, como, recuperação de senha. 826 00:50:09,970 --> 00:50:14,450 E vai enviar-lhe uma redefinir a senha do e-mail. 827 00:50:14,450 --> 00:50:18,260 Podemos implementar permissão para que eu possa criar um post, 828 00:50:18,260 --> 00:50:20,350 mas alguém não pode editá-lo. 829 00:50:20,350 --> 00:50:24,610 Podemos implementar funcionalidade para apagar posts. 830 00:50:24,610 --> 00:50:28,160 >> Mas você pode ver aqui que nós temos muito tanto todos os componentes rudimentares 831 00:50:28,160 --> 00:50:31,640 para construir alguns realmente, realmente, aplicações dinâmicas e emocionantes da web. 832 00:50:31,640 --> 00:50:34,035 Então, com isso, eu acho que estamos bem. 833 00:50:34,035 --> 00:50:35,720 Vocês têm alguma dúvida? 834 00:50:35,720 --> 00:50:36,220 Sim? 835 00:50:36,220 --> 00:50:38,090 >> COLUNA 3: Como você obter conteúdo estático? 836 00:50:38,090 --> 00:50:39,256 >> ERIC Ouyang: O conteúdo estático. 837 00:50:39,256 --> 00:50:45,520 Então você viu antes que quando tivemos isto aqui, este conteúdo layout, 838 00:50:45,520 --> 00:50:49,625 vista make, tivemos este sem esta matriz depois. 839 00:50:49,625 --> 00:50:56,440 840 00:50:56,440 --> 00:50:59,152 Blog.index, tivemos este como apenas um arquivo estático. 841 00:50:59,152 --> 00:51:00,860 Então, se nós não passar nada junto a ele, 842 00:51:00,860 --> 00:51:03,340 isso só vai tornar o HTML diretamente. 843 00:51:03,340 --> 00:51:09,240 Mas se nós passamos neste associativa variedade de mensagens, que é dinamicamente 844 00:51:09,240 --> 00:51:12,950 puxado a partir da base de dados, nós pode tornar a página dinâmica. 845 00:51:12,950 --> 00:51:13,450 Com estilo. 846 00:51:13,450 --> 00:51:14,830 Alguma outra pergunta? 847 00:51:14,830 --> 00:51:16,786 848 00:51:16,786 --> 00:51:19,720 COLUNA 3: Como você compararia Laravel para talvez algumas outras opções? 849 00:51:19,720 --> 00:51:20,525 ERIC Ouyang: Claro. 850 00:51:20,525 --> 00:51:21,025 Sim. 851 00:51:21,025 --> 00:51:23,430 Então Laravel é-- isso é um grande question-- 852 00:51:23,430 --> 00:51:26,190 uma das muitas opções de frameworks web. 853 00:51:26,190 --> 00:51:31,160 Então Ruby on Rails é um que é popular. 854 00:51:31,160 --> 00:51:34,590 Acredito Twitter costumava ser implementado com Ruby on Rails. 855 00:51:34,590 --> 00:51:37,600 Eu acho que eles desde comutada. 856 00:51:37,600 --> 00:51:40,780 Há um outro chamado FuelPHP. 857 00:51:40,780 --> 00:51:46,120 >> Então Ruby on Rails usa a linguagem Ruby e implementa um monte de coisas MVC 858 00:51:46,120 --> 00:51:48,200 que vemos aqui. 859 00:51:48,200 --> 00:51:52,320 FuelPHP é outro framework PHP. 860 00:51:52,320 --> 00:51:54,490 Django é um dos meus favoritos. 861 00:51:54,490 --> 00:51:57,010 É um framework web para Python. 862 00:51:57,010 --> 00:52:01,270 Assim, você pode escrever seu aplicativo web em Python. 863 00:52:01,270 --> 00:52:03,760 Portanto, há uma tonelada de estas opções. 864 00:52:03,760 --> 00:52:06,170 >> Laravel, eu acho que, de um modo grande é o meu direito favorito 865 00:52:06,170 --> 00:52:08,232 agora para PHP só porque dos componentes 866 00:52:08,232 --> 00:52:09,440 que falamos anteriormente. 867 00:52:09,440 --> 00:52:11,910 É Composer habilitado. 868 00:52:11,910 --> 00:52:15,750 Ele inclui um muito, muito sistema ORM expressivo. 869 00:52:15,750 --> 00:52:18,800 Também tem uma modelagem realmente incrível língua que alguns dos outros 870 00:52:18,800 --> 00:52:20,630 só não fornecem. 871 00:52:20,630 --> 00:52:21,400 E migrações. 872 00:52:21,400 --> 00:52:23,432 As migrações são incríveis. 873 00:52:23,432 --> 00:52:24,860 Legal? 874 00:52:24,860 --> 00:52:25,390 Impressionante. 875 00:52:25,390 --> 00:52:27,560 Bem, muito obrigado por assistir a este seminário, 876 00:52:27,560 --> 00:52:30,650 e boa sorte em seus projetos finais. 877 00:52:30,650 --> 00:52:31,616