Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

É preciso subir a montanha como velho para chegar lá acima como jovem. (Provérbio chinês)

14.1 - Repassando Informações Entre Controllers

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

Novo Testamento

Contudo um dos soldados lhe furou o lado com uma lança, e logo saiu sangue e água.
(Jo, 19:34)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper