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

Pensamento do Dia

O homem está sempre disposto a negar aquilo que não compreende. (Luigi Pirandello)

13.4 - Aplicativo via Código

13.4 – Aplicativo via Código



Você não precisa estar um passo à frente dos outros, desde que ca dada dia esteja à frente de você mesmo ontem.



Criar um aplicativo para exemplo de interação do codigo do CakePHP entre controllers, models e templates.

cake3_app_code

Criar um banco no postgresql com duas tabelas relacionadas

groups e users

Configurar o banco no app.php e a rota para apontar para Users e index

Testar

http://localhost/cake3_app_code


Criar um novo método com apenas uma mensagem/string

Criar o src/Model/Table/UsersTable.php com apenas o método abaixo

 

<?php
namespace App\Model\Table;

use Cake\ORM\Query;
use Cake\ORM\RulesChecker;
use Cake\ORM\Table;
use Cake\Validation\Validator;

class UsersTable extends Table
{
    public function olaModel(){
        return "Olá model do CakePHP3";
    }
}

No UsersController adicione ao início

use Cake\ORM\TableRegistry;

E crie o método ola, deixando assim:

<?php
namespace App\Controller;
use App\Controller\AppController;
use Cake\ORM\TableRegistry;

class UsersController extends AppController
{
	public function ola()
	{
		$msg = TableRegistry::get('Users');
		$ola = $msg->olaModel();
		$this->set('ola',$ola); 
	}
}

No Template Users cria o arquivo ola.ctp contendo:

<b>A mensagem abaixo foi criada no método olaModel do Model UsersTable.php<br>
e enviada para a view ola.ctp pelo action ola() do Controller UsersController.php</b>
<br><br>
<?= $ola ?>

Chamar pelo navegador assim:

http://localhost/cake3_app_code/users/ola

Alternativamente criar o action index() no UsersController vazio, assim:

public function index(){
}

E criar a index.ctp contendo:

<li><?= $this->Html->link(__('Olá'), ['controller' => 'Users', 'action' => 'ola']) ?></li>

Criar um método que pega um registro da tabela users

No UsersTable.php:

Adicione ao início

   use Cake\ORM\TableRegistry;

	public function umUser()
	{
        $users = TableRegistry::get('Users');
        $query = $users->find();
        $user=$query->where(['username' => 'super']);
        return $user;
	}


No UsersController.php
	public function umUser()
	{
		$user = TableRegistry::get('Users');
		$super = $user->umUser();
		$this->set('super',$super); 
	}

No Template/Users criar um_user.ctp contendo:

<?php
//
?>
<h3>Usuário recebido do model através do controller</h3>
<?php
foreach($super as $campos){
    print ' ID - '.$campos->id.'<br>';
    print ' Grupo - '.$campos->group_id.'<br>';
    print ' Username - '.$campos->username.'<br>';
}

Testar
http://localhost/cake3_app_code/users/um_user

Adicionar o link abaixo para o action um_user na index.ctp

<li><?= $this->Html->link(__('Um usuário'), ['controller' => 'Users', 'action' => 'um_user']) ?></li>

Sugestões

Existe muita informação importante na documentação do CakePHP 3 online assim também como podemos aprender muito estudando o código gerado pelo bake.

Em português
https://book.cakephp.org/3.0/pt/index.html

Aqui
https://book.cakephp.org/3.0/en/index.html

 

Comments fornecido por CComment

Novo Testamento

Porque pela palavra de Deus e pela oração é santificada.
(1Tm, 4:5)

Rotas no Mapa do Google

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