>> Portanto um destes, os melhores recursos
do quadro Laravel é o eloquente ORM
e como David apontou, um ORM é um mapeador objeto-relacional
que permite mapear dados linhas de base para objetos em php
e permite que você criar associações
entre estes diferentes tabelas muito facilmente, sem ter
para escrever um monte de SQL sob o capô
e dá-lhe realmente um ótima sintaxe para pesquisa
para um registro individual.
Então, ao invés de dizer: selecionar, estrela, de cursos
onde outra coisa que você dizer, cursos, encontrar [inaudível]
ou cursos de encontrar qualquer um dos cursos que você está procurando
e teria que determinar SQL deveria ser escrito
e executá-lo corretamente para você e dar tudo de volta para você
em um objeto que então você pode exibir
na tela verdadeiro facilmente.
Assim, a maneira que o eloqüente RM funciona é ... a convenção
que se utiliza é de que se você tem uma tabela de base de dados
que é tão plural por exemplo, cursos,
você poderia criar uma classe em o curso chamada pasta modelos
e isso é tudo o que você tem a fazer é dizer,
curso classe estende eloqüente e
sob a capa automaticamente assume
que o que a mesa nome, o que o ID é,
assim como não há uma auto incrementando ID e há uma
que vem com Laravel por padrão, ele é chamado de usuário
e ele usa algum avanço recursos chamados interfaces,
que nós não vamos para passar por cima,
mas você pode ver classe usuário, estende-se eloqüente,
e você pode definir o nome da tabela
se você não está seguindo a convenção
do pluralizado ... tendo um nome de tabela plural
e um nome de classe singular.
Mas vamos em frente criar para um dado exemplo
de antes, vamos em frente e criar um para cursos.
Então, vamos fazer curso dot php
e fazer curso de classe estende-se eloqüente.
E assim eu vou pular no meu php administrador
e na verdade re-nome esta tabela de cursos.
Então agora eu tenho a mesa de um curso com o mesmo exemplo de dados
desde o primeiro catálogo que David tinha mencionado e agora
que este curso é
no diretório de nós do modelo pode ir em frente e dizer, é claro,
limite de 10 por isso só deseja obter 10 registros,
chegar e vamos dizer este é cursos.
E agora nós estamos indo para a frente
e vamos criar uma melhor visualização para exibir essas coisas na verdade.
Então, eu realmente criado um modelo de lâmina mais cedo
e eu estou indo só para ir em frente e copiá-lo aqui apenas
para salvar, salvar alguns minutos de tempo.
[O ruído de fundo]
Ok, então eu criei um,
na pasta de vista que eu criou um curso dot lâmina
e então eu vou fazer vista fazer cursos, e eu vou
para passar um curso variável com o ... na verdade isso não vai
para o trabalho, apenas um segundo, título cursos.
Ok, isso não funcionou porque ele diz acesso negado
para rota usuário no host local.
Então, alguém pode me dizer o que eles acha que pode ser o problema aqui?
Então, o problema é que eu nunca disse Laravel o que ... quem eu sou
na tentativa de acesso a base de dados,
isso não acontece automaticamente sabei que eu sou capaz
para acessar a base de dados Eu estou tentando consultar.
Assim, na pasta config
que eu havia mencionado anteriormente existe uma base de dados php dot
arquivo e aqui é preciso dizer que estamos nome de usuário, jharvard
e carmesim e senha agora se vá em frente e fazer
que os dados desconhecido base, base de dados.
Assim, a base de dados que estamos tentando
para escolher é chamado cursos [inaudível]
e desta vez deu certo.
Então o que ele está fazendo aqui é que é, deixe-me ir em frente
e voltar para o controlador.
Então eu fiz cursos, limitar dez, começa,
então eu disse que eu só quero 10 linhas na base de dados,
buscar aqueles por eles, e colocar los em esta variável cursos.
Então este curso variável é agora um objeto
que contém o colunas diferentes
que eu possa acessar realmente facilmente no modelo.
Então eu para cada curso como claro ... vá em frente e ampliar,
e eu acabei de dizer é claro título ou descrição curso
e vai em frente e saídas qualquer que seja a linha de base de dados
está lá.
Então, como você pode ver o seu muito mais simples, mas facilmente a razão
com do que ter que escrever o SQL à mão
e, em seguida, descobrir como, como mapear-lo em um objeto
mas onde fica realmente poderoso é quando, como David espécie
de mencionara antes, quando você começar a
ter diferentes tabelas que você deseja associar
com a outra, por meio do chaves estrangeiras,
você pode ter esses objetos fazer o trabalho pesado
da consulta e descobrir que pares com o que e como
para ir em frente e tornar isso.
Então, se olharmos para ... Vamos continuar
e voltar aqui muito rápido, de modo de configuração de base de dados como ele chegou
lá [inaudível] pular isso por enquanto.
Assim, os diferentes tipos em meus ... diferentes tipos
das relações, por padrão, alguns da ... há um pouco mais
do que esta, mas estes são os 4 mais comuns são um tem um,
um tem muitos, ele pertence também, e ele pertence a muitos.
Assim, você pode tipo de pensar em uma tem um como,
você sabe se só tenho uma de alguma coisa,
portanto, neste caso uma conta, isso é apenas realmente estúpidos
esquema de exemplo para baixo simplificada
mas uma conta tem apenas um fornecedor neste caso.
Portanto, há um fornecedor ID e um fornecedor
assim na tabela da conta há uma ID fornecedor
e um fornecedor tem uma identificação e só há espécie
de um para um relacionamento.
Considerando que ... não há um pertence também
assim uma ordem só poderia ser colocada por um cliente,
enquanto que um cliente pode ter um monte
de ordens somente a ordem pertence a um único cliente,
você não pode ter 3 diferentes pessoas que compram a mesma coisa
neste exemplo.
E então um tem muitos, como eu disse o cliente tem muitas ordens
mas não o contrário e, em seguida, em torno pertence
para muitos é o mais relacionamento avançado
que Davi estava passando por cima anterior, onde você classificar
de juntar duas tabelas por meio de uma tabela interna,
Portanto, neste caso assembléias, peças é uma junção
das assembléias e peças ou uma lista
que nos foi dado anteriormente,
os cursos ... a instrutores se juntaram
por um instrutor do curso juntar tabela e, neste caso,
e no caso de Laravel,
na verdade não necessita primário auto implementação ID
na tabela de junção mas você pode ter um,
na verdade não faz exigir um ou por ele
para trabalhar da maneira que ele faz.
Então, vamos em frente e configurar tipo
de alguns objectos diferentes baseados no lay out da base de dados
que temos agora e então vamos manter cursos
como nosso objeto de base, mas estamos vai dizer que em olhar
na tabela de base de dados, o curso tem muitos reunião
por isso tem muitas vezes de reuniões, ele pertence a um departamento
e que pertence a ambos muitos instrutores e exigências.
Portanto, pode haver múltiplas requisitos para o curso
mas os requisitos poderia ser compartilhado por diferentes cursos.
Então, vamos em frente e ver se podemos modelar
que um pouco usando os modelos eloquentes
Então você tem ... vamos começar com o instrutor dot [inaudível]
de modo semelhante ao anterior, estamos indo para ir em frente e dizer:
instrutor de classe, estende-se eloqüente
e por isso esta seria assumir como eu disse anteriormente,
que existe uma plural instrutor de instrutores
e esta é a tabela que será mapeando para.
E agora sobre o curso, vamos em frente
e dizer ... vamos criar um método
então a função pública instrutores,
o público ... desculpe, eu sou ... sim os instrutores de função pública
e da maneira que Laravel conjuntos
as relações se você voltar um esta pertence a muitos instrutor,
de modo que este nos diz agora que o curso está associado
com o modelo de instrutor, isso é tudo o que precisávamos fazer
configurar essa relação e agora como estamos
neste loop aqui, podemos dizer, de modo porque é um tem ... ele pertence
para muitos relacionamentos por aí pode um ou mais instrutores.
Então é uma matriz ou é um objeto que tem mais
de um instrutor sobre ele então vamos também laço
aqui e dizer para cada instrutores do curso como instrutor
e, em seguida, escolher o primeiro nome eo sobrenome,
Eu acredito que esses são os colunas para o primeiro eo último,
pode ser primeiro nome, sobrenome.
Então, primeiro e último ele é definido se neste catálogo de cursos
e vamos em frente e ver se isso torna
assim instrutores ... sim, Parece que eles estão mostrando
-se a menos que haja não um associado
portanto, neste caso, não há instrutores listados
com esse curso, mas em todos os outros casos que você vê um
ou mais instrutores como definido em relação a.
Então, uma coisa que é uma espécie de uma pegadinha, por vezes, com ORM do
como essa é que você vá em frente e definir uma relação
e você acha que está bem é buscar os meus dados corretamente
como eu estou olhando aqui tudo está prestando
na tela tudo bem, está tudo bem,
que está fazendo todo o SQL nos bastidores para me
mas o que está acontecendo aqui é
quando ele busca o primeiro cursos que não conhecem
que você também vai estar olhando para os instrutores.
Assim, ele busca todos os cursos para você e, em seguida, ele vai
para exibir todos esses dados em o, na opinião aqui
e, em seguida, torna-se a este Para cada curso os instrutores
e ele diz que tudo bem eu não saber o que os instrutores são
ainda me deixar ir buscar aqueles
e ele está fazendo isso todos os única vez que você vai
através do laço claro.
Então, cada vez que você é tentativa de mostrar um curso
na tela é uma espécie de final a tudo dizendo que eu preciso
para encontrar o que o instrutores são para esta linha
e por isso está fazendo n mais uma consulta
por isso que ele está fazendo no entanto muitas voltas você tem que está fazendo outra
consulta ao passo que isso não é a forma mais eficiente para ir
sobre buscar e exibir seus dados.
Então, o caminho para buscar tudo na frente em Laravel é
dizer curso com instrutores limitar dez get
e agora ele sabe que parece não é diferente apenas para o olho
mas em vez de fazer eu acho que seria 12 consultas
ou assim nos bastidores agora ele só está fazendo dois ou três.
Assim, podemos ir, podemos continuar em que a moda e definir
se apenas um pouco mais relacionamentos de modo que foram alguns
do outro tem muitos reunião.
Assim, semelhante montamos um modelo chamado de reunião,
classe [inaudível] estende-se eloqüente
e que deveria ... tudo cuidados devem ser tomados daqui
se olharmos para a mesa de reuniões ele tem um ID auto incremento
é plural, então tudo deve funcionar corretamente se tentarmos
para exibir as reuniões.
Então, vamos voltar, nós já explicou isso
e foi um novo relacionamento ... desculpe, foi um
tem [inaudível] reunião, para vamos dar uma olhada na mesa de reunião
e ver o que pode quero mostrar aqui.
Então vamos mostrar ... na verdade Eu tenho um conjunto de modelos
para isso, vou apenas pegue uma pequena mesa
e cole isso em bem aqui.
Então eu vou para exibir apenas alguns dados
sobre o curso diferente reuniões e [inaudível].
Veja se eu perdi alguma coisa aqui, reuniões, eu tinha singular
então agora nós temos um tipo da tabela aqui
como para o diferente reuniões, o que o tipo são,
quando ele começa, termina etcetera.
Para que eu possa continuar em apenas criação dessas relações
mas como você pode ver que tipo de abstrai o SQL de ter
a ser escrita à mão e ele cuida de um monte
parte do trabalho pesado nos bastidores para você
quando você cria estes associações com base nas chaves
que estão configurados corretamente na base de dados.
Como você está passando
e instalação Laravel Há muito ... há muito
para cobri-lo é realmente tipo de difícil tentar ver
que parte para morder e ir acabou, mas há muito mais
que nós vamos continuar a discutir, provavelmente na segunda-feira.
Muito mais recursos ao ORM eloqüente
e as diferentes maneiras de guardar os dados, associando dados,
apagar as coisas, a criação de os diferentes escopos
para quando você está consultando inserção de [inaudível] etcetera
então você pode dar uma olhada por isso e eu acho que ...
>> O processo será
como, em seguida, seguir em frente é mais uma temos formado o nosso grupo principal,
quatro grupos de pessoas uma vez que decidamos
sobre os projetos de vários grupos são a maneira responsabilidades
será geralmente dividiram é um ou dois de vocês vão classificar
de voltar ao desenho bordo e descobrir tudo certo
por qualquer problema estamos tentando
para resolver aqui são o entidades que temos de implementar,
por exemplo, um instrutor ou um núcleo ou algum tipo
de juntar lá de e você vai spec as tabelas de base de dados
como fizemos no primeiro semestre de hoje e, em seguida, como Tim aludido
até aqui o próximo passo na este processo vai ser vir
com as classes e você vai escrever alguns arquivos
que se estendem eloqüente Desta forma, utilizando alguns dos
fora da caixa, mas a funcionalidade em seguida, também acrescentando talvez alguns
de você possui funcionalidade para instância número de telefone get
onde você pode muito bem formatar o número de telefone base
sobre algum tema padrão e assim por diante e, em seguida, todos
essa informação será presumivelmente ser comunicadas ao seu único
ou dois ou três outros ... outras pessoas
no seu grupo dizendo tudo direito de ter essas aulas,
você tem essa funcionalidade agora começar a realmente escrever a lógica
implementar os controladores, Enquanto isso alguém
no seu grupo vai lidar com a pontos de vista e assim os modelos de lâmina
que Tim estava aludindo alguém vai cuidar
da experiência [inaudível] e usar sua interface
e no menu suspenso usuário e tudo o que
e mesmo que nós só começamos
a arranhar a superfície aqui o facto
que Tim não escreveu uma única linha de SQL eo fato
que ele era uma espécie de poder
para se juntar automagicamente essas várias tabelas é
onde você realmente começar a ver as coisas bastante poderosa.
Assim, mesmo que a primeiro ele vai
ser absolutamente um aprendizado curva porque você meio que tem
para saber como este quadro especial funciona.
No final, adicionando um pouco de novo mesa, acrescentando alguma característica nova
para, naturalmente, um novo catálogo e similares podem levar apenas alguns minutos
fazer e atualização modelos, apenas alguns segundos
por isso é realmente muito excitante que você pode começar
fazer rapidamente.
Então, muito obrigado a Tim em que cabide penhasco, tome cuidado
do formulário de loteria caso contrário, nada a ver
até ouvir de volta de nós em um ou dois dias via e-mail,
vamos vê-lo na próxima semana.