14.1 - Repassando Informações Entre Controllers
Um dos mais importantes ingredientes na fórmula do sucesso é saber como lidar com as pessoas.
Como faço para repassar informações entre dois controllers.
Exemplo:
Eu tenho no meu banco de dados duas tabelas, uma de usuários e outra de livros, aí eu seleciono um livro que está na tabela livros, pego seu id e tenho que atualizar essa informação na tabela do usuário..
Eu tenho dois controllers, um de usuários e outro de livros, eu tenho que repassar o id do livro para o controller de usuários..
Como passo essa informação entre controllers
Como seleciono o id do usuário logado no sistema
Qual o jeito correto de fazer essa atualização
Alguns actions típicos:
Autenticação de e-mail
Crédito:
https://www.youtube.com/watch?v=cEwf9PpbMcQ
config/app.php
...
'EmailTransport' => [
'default' => [
'className' => 'Mail',
// The following keys are used in SMTP transports
'host' => 'localhost',
'port' => 25,
'timeout' => 30,
'username' => 'user',
'password' => 'secret',
'client' => null,
'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null),
],
'gmail' => [
'className' => 'Smtp',
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'timeout' => 30,
'username' => Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.',
'password' => 'zmxn1029g',
'client' => null,
'tls' => null,
'url' => env('EMAIL_TRANSPORT_DEFAULT_URL', null)
],
Profile
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'you@localhost',
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
],
'ribaportal' => [
'transport' => 'gmail',
'from' => [Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.'=>'Portal do RibaFS'],
],
],
Criar classe mailler usando o bake
bin/cake bake mailer user
Criar classes no controller e no model
Abrir src/Controller/Mailer/UserMailer.php
Adicionar após a linha
static ...
public function welcome($user)
{
$this->to($user->email)
->profile('ribaportal')
->emailFormat('html')
->template('welcome_email_template')
->layout('default')
->viewVars(['nome' => $user->name])
->subject(sprintf('Bem vindo, %s', $user->name));
}
Criar o template para o e-mail
src/Template/Email/html/welcome_email_template.ctp
<h1>Seja bem-vindo(a), <?php echo $nome;?></h1>
<p>
Apenas um teste de envio de e-mail pelo CakePHP.
</p>
Para testar crie um novo usuário e veja se ele enviou o e-mail.
Recuperação de senha
https://www.youtube.com/watch?v=cEwf9PpbMcQ
Capturar numa view dados do user logado:
Capturar o group_id:
$gi=$this->request->session()->read('Auth.User.group_id');
dd($gi);
Campos Virtuais
São campos que não vêm de tabelas e existem apenas nos formulários. Um bom exemplo é o de confirmação de senha.
Também podemos criar um para calcular a idade de alguém ou para efetuar consultas a bancos de dados no model.
Crédito e Detalhes:
http://www.naidim.org/cakephp-3-tutorial-11-virtual-fields
Comments fornecido por CComment