Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''cakephp''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 26 registros

  1. matmper

    Problema com Root Path no Cakephp 2.8

    Estou com um problema, eu possuo um sistema antigo, e que a cliente não se desfaz de nenhuma maneira, está escrito em CakePHP 2.8. Eu não dou mais manutenção do mesmo faz anos, e hoje trabalho apenas com Laravel e Code Igniter, mas tive que fazer uma migração de hospedagem. Tudo ocorreu bem, conexão com o banco de dados, funcionamento e apache. O servidor está com Apache 2.2 e PHP 5.6 O problema é que todos os actions dos <form> e os href dos <a> estão exibindo pastas do servidores, que não deveria. O correto seria: <a href="/cartao/18.06.2018/18.06.2018" class="xn-text">Cartões</a> Porém, está exibindo da seguinte maneira: <a href="/var/www/html/dominio.com.br/web/cartao/18.06.2018/18.06.2018" class="xn-text">Cartões</a> O que devo alterar? Já tentei pelo .htaccess e no index do projeto. /index.php define('APP_DIR', 'app'); define('DS', DIRECTORY_SEPARATOR); define('ROOT', dirname(__FILE__)); define('WEBROOT_DIR', 'webroot'); define('WWW_ROOT', ROOT . DS . APP_DIR . DS . WEBROOT_DIR . DS); .htaccess <IfModule mod_rewrite.c> RewriteEngine on RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule> Como posso solucionar o problema? Obrigado desde já!
  2. vrnkl

    Inserir registro em 2 tabelas

    Estou tentando inserir registro em 2 tabelas (distributions e countries). Estou usando CakePHP 3.5 e as tabelas do banco estão mais ou menos assim - Distributions (id, name); - Countries (id, distributions_id, name); DistributionsController: public function add() { $topic = $this->Distributions->newEntity(); if($this->request->is('post')) { $topic = $this->Distributions->patchEntity($topic, $this->request->data); if($this->Distributions->save($topic, ['associated'=>'Countries'])) { $this->request->data['Countries']['distributions_id'] = $this->Distributions->id; $this->Flash->success(__('Cadastrado.')); return $this->redirect(['action' => 'add']); } $this->Flash->error(__('Erro.')); } $this->set('topic', $topic); } DistributionsTable: class DistributionsTable extends Table { public function initialize(array $config) { parent::initialize($config); $this->table('distributions'); $this->primaryKey('id'); $this->addBehavior('Timestamp'); $this->hasOne('Countries', [ 'foreignKey' => 'distributions_id', 'joinType' => 'INNER' ]); } Add.ctp (view add em distributions) <h1>Add Topic</h1> <?php echo $this->Form->create($topic); echo $this->Form->input('name'); echo $this->Form->input('countries.name'); echo $this->Form->button(__('Salvar')); echo $this->Form->end(); ?> CountriesTable: class CountriesTable extends Table { public function initialize(array $config) { parent::initialize($config); $this->table('countries'); $this->primaryKey('id'); $this->addBehavior('Timestamp'); $this->belongsTo('Distributions'); }
  3. horacio2009

    cakephp não reconhece meu login

    Estou estudando CakePHP e criei um projeto para treina login, mas não importa o que faço, o login/senha sempre nega o acesso. aí vão os códigos public function initialize() { //appController parent::initialize(); $this->loadComponent('RequestHandler'); $this->loadComponent('Flash'); //--------------------------------- $this->loadComponent('Auth', [ 'authenticate' => [ 'Form' => [ 'fields' => [ 'username' => 'email', 'password' => 'password' ] ] ], 'loginAction' => [ 'controller' => 'Users', 'action' => 'login' ], // If unauthorized, return them to page they were just on 'unauthorizedRedirect' => $this->referer() ]); //------------------------------------ $this->Auth->allow(['display', 'view', 'index']); } já no users contoller public function initialize() { parent::initialize(); // Add the 'add' action to the allowed actions list. $this->Auth->allow(['logout', 'add']); } public function logout() { $this->Flash->success('You are now logged out.'); return $this->redirect($this->Auth->logout()); } public function login() { if ($this->request->is('post')) { $user = $this->Auth->identify(); if ($user) { $this->Auth->setUser($user); return $this->redirect($this->Auth->redirectUrl()); } $this->Flash->error('Your username or password is incorrect.'); } } já página de login: { <h1>Login</h1> <?= $this->Form->create() ?> <?= $this->Form->control('email') ?> <?= $this->Form->control('password') ?> <?= $this->Form->button('Login') ?> <?= $this->Form->end() ?> } a tabela do banco: CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, email VARCHAR(255) NOT NULL, password VARCHAR(255) NOT NULL, created DATETIME, modified DATETIME ); enfim...o que tá errado???obrigado a todos!! Horácio
  4. jdsdias

    Cakephp consulta retorna sempre -1

    Estou desenvolvendo uma aplicação utilizando o cakephp 3.0. O problema ocorre porque tem uma consulta SELECT que retorna, na função rowCount do pdo, sempre -1. Então o cake dá um erro, porque a consulta não pode retornar valor menor do que zero. array size cannot be less than zero O banco de dados que estou utilizando é o SQL Server 2008. Fiz um pequeno teste, utilizando somente o PDO, e verifiquei que o retorno do rowCount no pdo, nesse banco, está sempre retornando -1. Segue o exemplo: $conn = new PDO("dblib:host={HOST};dbname={DB}","{USER}","{PASSWORD}"); $sql = "select * from pessoas"; $stmt = $conn->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL)); $stmt->execute(); echo $stmt->rowCount(); // return -1 Esse mesmo código, usando o banco de dados MySQL, traz como resultado o número de linhas da consulta, já executando com o SQL Server o retorno sempre é -1. Li em alguns fóruns para utilizar a função count do php sobre o fetch da consulta. Mas essa solução não iria funcionar pois estou utilizando o cake como framework e ele utiliza internamente a função rowCount. Alguém já passou por algum problema parecido e poderia me orientar se existe alguma solução para esse caso? obs: o cake utiliza o driver sqlsrv ao invés do dblib mas nos dois ocorre o mesmo problema
  5. th4deu

    Framework: Usar ou não usar?

    Fala, pessoal! Surgiram alguns projetos de programadores que abandonaram o projeto e tenho percebido que recentemente, maioria dos projetos que pego em PHP vindo de outras pessoas não seguem um padrão (MVC, etc) e também não utilizam nenhum framework. Como vocês programam? Preferem o código "puro" ou usar algum Framework para padronizar? Se sim, como vocês costumam escolher o Framework? Já respondendo, eu sempre procuro padronizar com a utilização de algum framework, até mesmo pra facilitar a manutenção quando trabalho com vários projetos intercalados, etc. No caso, utilizo o codeigniter para projetos menores e laravel para projetos médios/grandes. E vocês?
  6. goofzinho

    Junção de tabelas complexa HABTM

    Bom dia pessoal! Talvez (muito provavelmente) pra muitos aqui nem seja tão complexa.. mas to me batendo a alguns dias nessa questão. Eu tenho uma tabela produtos no mysql onde ele é HABTM (has and belongs to many) a tabela cores, que por sua vez também tem a tabela de numeração (tamanhos), e a tabela fotos relacionados a esse produto. O problema é que a cor de cada sapato vai definir quais os números disponíveis naquela cor bem como carregar as fotos respectivas daquela cor. Até difícil eu conseguir explicar. Vou dar um exemplo. Bota Firenze na cor marrom possui o tamanho 36, 37 e 38. A mesma bota Firenze só que na cor preta possui o tamanho 40, 41 e 42. E cada um tem que ter suas fotos respectivas. É semelhante ao site do Netshoes na parte de detalhes do produto. Mas a minha dúvida são duas. 1 - Como modelar corretamente essas tabelas? Eu fiz a tabela produtos ser HABTM cores que por sua vez é HABTM numeração e a cores é HasMany fotos porém não sei se está certo. 2 - E estou com muita dificuldade nesse formato de tabela fazer a junção deles na hr de cadastrar, pois HABTM muitos para muitos blz, mas como associar a cor com a numeração no mesmo cadastro do produto? Alguém pode me ajudar. Eu estou usando o Cakephp 2.x se ajudar em algo. Muito obrigado pessoal
  7. FilipeVoges

    CakePHP + Ubuntu/Windows + BitBucket

    Bom dia, Criei uma aplicação cakePHP em um computador que uso que tenho o Windows 10, a aplicação funciona, existe a pasta vendor e o arquivo config/app.php, mas ao usar o meu ubuntu, quando faço o git clone a pasta vendor e o app.php não vem e (acredito que seja) por isso a aplicação não está rodando. Gostaria de saber se tem que ser feito de alguma outra maneira esse versionamento. Estou o Bitbucket o no repositório não está aparecendo os arquivos, mesmo dando um git add diretamente neles.
  8. bamoZ

    Freelance de PHP

    Procuro um desenvolvedor PHP, que conheca CakePHP para criar pagina web simples, com uma tela de busca, uma tela de resultado e uma tela de detalhe do resultado. Pode trabalhar de casa e deve poder fazer reunioes via Skype. Obrigado Oswaldo
  9. Orique

    Filtro de busca em CAKEPHP 2.0

    Fala galera, estou tendo um erro no meu filtro ['Filtro']['uf'] de busca e não sei como resolver. Meu controller tem a seguinte verificação: $this->loadModel('User'); $this->loadModel('Conta'); $this->loadModel('Unidade'); $this->loadModel('Periodicidade'); $this->loadModel('AgendamentoFinanceiro'); $this->loadModel('Entidade'); $this->loadModel('EntidadesEndereco'); $arrayConditions = array(); $arrayContas = array(); $total_a_receber = 0; $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A'; // apenas os agendados $arrayConditions['AND']['AgendamentoFinanceiroParcela.tipo <>'] = 'S'; // diferente de saídas //se foi passado um parametro informando a agenda financeira if (!empty($agendamento_financeiro_id) && $agendamento_financeiro_id > 0) { //gera as proximas parcelas do agendamento informado: $this->AgendamentoFinanceiro->gerar_parcelas($agendamento_financeiro_id); //adiciona esta condição no filtro $arrayConditions['AND']['AgendamentoFinanceiroParcela.agendafinanceira_id'] = $agendamento_financeiro_id; } if(isset($this->params['named']['todos'])) { $this->data = array(); $this->Session->delete('AgendamentoFinanceiroParcelasReceber'); } if (!empty($this->data)) { if (!empty($this->data['Filtro']['unidade_id'])) { $arrayConditions['OR']['ContaOrigem.unidade_id'] = $this->data['Filtro']['unidade_id']; $arrayConditions['OR']['ContaDestino.unidade_id'] = $this->data['Filtro']['unidade_id']; $arrayContas = $this->Conta->find( 'list', array( 'conditions' => array( 'unidade_id' => $this->data['Filtro']['unidade_id'] ), 'fields' => array('id', 'nome'), 'recursive' => -1 )); } if(isset($this->data['Filtro']['conta_id']) && !empty($this->data['Filtro']['conta_id'])){ $arrayConditions['OR']['AgendamentoFinanceiro.conta_origem_id'] = $this->data['Filtro']['conta_id']; $arrayConditions['OR']['AgendamentoFinanceiro.conta_destino_id'] = $this->data['Filtro']['conta_id']; unset($arrayConditions['OR']['ContaOrigem.unidade_id']); unset($arrayConditions['OR']['ContaDestino.unidade_id']); } if (isset($this->data['Filtro']['entidade_id']) && !empty($this->data['Filtro']['entidade_id'])){ $arrayConditions['AND']['AgendamentoFinanceiro.entidade_id'] = $this->data['Filtro']['entidade_id']; } if (isset($this->data['Filtro']['uf']) && !empty($this->data['Filtro']['uf'])){ $arrayConditions['AND']['EntidadesEndereco.uf'] = $this->data['Filtro']['uf']; } if(isset($this->data['Filtro']['situacao']) && !empty($this->data['Filtro']['situacao'])){ $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = $this->data['Filtro']['situacao']; if($this->data['Filtro']['situacao'] == 'V'){ // se foi escolhido 'vencido': $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A'; $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <'] = date('Y-m-d'); } } if (isset($this->data['Filtro']['data_inicial']) && !empty($this->data['Filtro']['data_inicial'])){ $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento >='] = $this->Mswi->formatarData($this->data['Filtro']['data_inicial']); } if (isset($this->data['Filtro']['data_final']) && !empty($this->data['Filtro']['data_final'])){ $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <='] = $this->Mswi->formatarData($this->data['Filtro']['data_final']); } } $params = $this->Mswi->autoPaginate($this->params, 'AgendamentoFinanceiroParcela.data_vencimento', 'ASC', $arrayConditions); $this->AgendamentoFinanceiroParcela->bindModel(array( 'hasMany' => array( 'Anexo' => array( 'className' => 'Anexo', 'foreignKey' => 'agendamento_parcela_id' ) ) )); Ai tenho as condições e debugando o código ele me passa os índices corretamente inclusive me retorna os estados de cada registro tudo certinho if ((isset($this->params['ext']) && $this->params['ext'] == 'pdf') || isset($this->params['named']['excel'])) { $AgendamentoFinanceiroParcelasReceber = $this->AgendamentoFinanceiroParcela->find('all', array( 'conditions' => $params['conditions'], 'order' => array($params['sort'] => $params['direction']), 'contain' => array( 'AgendamentoFinanceiro' => array( 'CentroDeCusto' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ), 'fields' => array('id', 'tipo', 'situacao', 'numero_parcelas', 'periodicidade_id'), ), 'Entidade' => array( 'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao') ), 'ContaDestino' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'ContaOrigem' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'PlanoDeConta' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ), 'LancamentoFinanceiro' => array( 'fields' => array('id', 'agendamento_parcela_id', 'valor', 'tipo', 'situacao', 'observacoes'), 'CentroDeCusto' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ), 'Entidade' => array( 'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao') ), 'ContaDestino' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'ContaOrigem' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'PlanoDeConta' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ) ), 'AgendamentoFinanceiroParcelaFatura' => array( 'Fatura' => array( 'Boleto' => array( 'fields' => array('id') ), 'fields' => array('id', 'formadepagamento_id') ), 'fields' => array('id', 'agendamento_financeiro_parcela_id', 'fatura_id') ), 'Anexo' => array( 'fields' => array( 'id' ) ) ), 'fields' => array( 'id', 'data_vencimento', 'valor', 'descricao', 'situacao', 'tipo', 'parcela', 'entidade_id', 'conta_origem_id', 'conta_destino_id', 'planodeconta_id', 'numero', 'observacoes', 'email_enviado', 'lancamentofinanceiro_id' ) ) ); } else { $this->paginate = array( 'conditions' => $params['conditions'], 'order' => array($params['sort'] => $params['direction']), 'page' => $params['page'], 'joins' => array( array( 'table' => 'agendamentos_financeiros_parcelas_faturas', 'alias' => 'AgendamentoFinanceiroParcelaFatura', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id = AgendamentoFinanceiroParcela.id', ) ), array( 'table' => 'agendamentos_financeiros', 'alias' => 'AgendamentoFinanceiro', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.agendafinanceira_id = AgendamentoFinanceiro.id', ) ), array( 'table' => 'lancamentos_financeiros', 'alias' => 'LancamentoFinanceiro', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.lancamentofinanceiro_id = LancamentoFinanceiro.id', ) ), array( 'table' => 'plano_de_contas', 'alias' => 'PlanoDeConta', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.planodeconta_id = PlanoDeConta.id', ) ), array( 'table' => 'entidades', 'alias' => 'Entidade', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.entidade_id = Entidade.id', ) ), array( 'table' => 'entidades_enderecos', 'alias' => 'EntidadesEndereco', 'type' => 'LEFT', 'conditions' => array( 'EntidadesEndereco.entidade_id = Entidade.id' , ) ), array( 'table' => 'contas', 'alias' => 'ContaOrigem', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.conta_origem_id = ContaOrigem.id', ) ), array( 'table' => 'contas', 'alias' => 'ContaDestino', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.conta_destino_id = ContaDestino.id', ) ), array( 'table' => 'anexos', 'alias' => 'Anexo', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.id = Anexo.agendamento_parcela_id', ) ), ), 'fields' => array( 'AgendamentoFinanceiroParcela.id', 'AgendamentoFinanceiroParcela.data_vencimento', 'AgendamentoFinanceiroParcela.valor', 'AgendamentoFinanceiroParcela.descricao', 'AgendamentoFinanceiroParcela.situacao', 'AgendamentoFinanceiroParcela.tipo', 'AgendamentoFinanceiroParcela.parcela', 'AgendamentoFinanceiroParcela.entidade_id', 'AgendamentoFinanceiroParcela.conta_origem_id', 'AgendamentoFinanceiroParcela.conta_destino_id', 'AgendamentoFinanceiroParcela.planodeconta_id', 'AgendamentoFinanceiroParcela.numero', 'AgendamentoFinanceiroParcela.observacoes', 'AgendamentoFinanceiroParcela.email_enviado', 'AgendamentoFinanceiroParcela.lancamentofinanceiro_id', 'AgendamentoFinanceiroParcela.modified_by', 'AgendamentoFinanceiroParcela.modified', 'AgendamentoFinanceiroParcelaFatura.id', 'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id', 'AgendamentoFinanceiroParcelaFatura.fatura_id', 'AgendamentoFinanceiro.id', 'AgendamentoFinanceiro.tipo', 'AgendamentoFinanceiro.situacao', 'AgendamentoFinanceiro.numero_parcelas', 'AgendamentoFinanceiro.periodicidade_id', 'LancamentoFinanceiro.id', 'LancamentoFinanceiro.agendamento_parcela_id', 'LancamentoFinanceiro.valor', 'LancamentoFinanceiro.tipo', 'LancamentoFinanceiro.situacao', 'PlanoDeConta.id', 'PlanoDeConta.numero', 'PlanoDeConta.nome', 'PlanoDeConta.situacao', 'Entidade.id', 'Entidade.nome_principal', 'Entidade.nome_secundario', 'Entidade.situacao', 'EntidadesEndereco.id', 'EntidadesEndereco.cidade', 'EntidadesEndereco.estado', 'EntidadesEndereco.uf', 'ContaOrigem.id', 'ContaOrigem.nome', 'ContaOrigem.contatipo_id', 'ContaOrigem.situacao', 'ContaDestino.id', 'ContaDestino.nome', 'ContaDestino.contatipo_id', 'ContaDestino.situacao', 'Anexo.id' ), 'limit' => 29, 'recursive' => -1 ); try { $AgendamentoFinanceiroParcelasReceber = $this->paginate('AgendamentoFinanceiroParcela'); } catch(NotFoundException $e) { $AgendamentoFinanceiroParcelasReceber = array(); $this->set('agendamentos_financeiros_parcelas', $AgendamentoFinanceiroParcelasReceber); $this->render('contas_receber_auto_paginate', 'ajax'); exit(); } } Passo por um array todos os estados $uf = array( 'AC' => 'AC', 'AL' => 'AL', 'AM' => 'AM', 'AP' => 'AP', 'BA' => 'BA', 'CE' => 'CE', 'DF' => 'DF', 'ES' => 'ES', 'GO' => 'GO', 'MA' => 'MA', 'MG' => 'MG', 'MS' => 'MS', 'MT' => 'MT', 'PA' => 'PA', 'PB' => 'PB', 'PE' => 'PE', 'PI' => 'PI', 'PR' => 'PR', 'RJ' => 'RJ', 'RN' => 'RN', 'RO' => 'RO', 'RR' => 'RR', 'RS' => 'RS', 'SC' => 'SC', 'SE' => 'SE', 'SP' => 'SP', 'TO' => 'TO', 'recursive' => -1 ); Mando para view $this->set('uf', $uf); E na view tenho o filtro de busca <td style="float: left;"> <div id="Grupo_ano" class="control-group"> <label class="control-label">UF</label> <div class="controls"> <div class="input-prepend input-append"> <?php echo $this->Form->select( 'Filtro.uf', $uf, array( 'class' => 'chzn-select-deselect', 'data-placeholder' => 'Selecione', 'label' => false, 'div'=> false, 'style' => 'width: 110px;', ) ); ?> </div> </div> </div> </td> Quando faço a consulta no filtro recebo esse erro e só com esse filtro Fala galera, estou tendo um erro no meu filtro ['Filtro']['uf'] de busca e não sei como resolver. Meu controller tem a seguinte verificação: $this->loadModel('User'); $this->loadModel('Conta'); $this->loadModel('Unidade'); $this->loadModel('Periodicidade'); $this->loadModel('AgendamentoFinanceiro'); $this->loadModel('Entidade'); $this->loadModel('EntidadesEndereco'); $arrayConditions = array(); $arrayContas = array(); $total_a_receber = 0; $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A'; // apenas os agendados $arrayConditions['AND']['AgendamentoFinanceiroParcela.tipo <>'] = 'S'; // diferente de saídas //se foi passado um parametro informando a agenda financeira if (!empty($agendamento_financeiro_id) && $agendamento_financeiro_id > 0) { //gera as proximas parcelas do agendamento informado: $this->AgendamentoFinanceiro->gerar_parcelas($agendamento_financeiro_id); //adiciona esta condição no filtro $arrayConditions['AND']['AgendamentoFinanceiroParcela.agendafinanceira_id'] = $agendamento_financeiro_id; } if(isset($this->params['named']['todos'])) { $this->data = array(); $this->Session->delete('AgendamentoFinanceiroParcelasReceber'); } if (!empty($this->data)) { if (!empty($this->data['Filtro']['unidade_id'])) { $arrayConditions['OR']['ContaOrigem.unidade_id'] = $this->data['Filtro']['unidade_id']; $arrayConditions['OR']['ContaDestino.unidade_id'] = $this->data['Filtro']['unidade_id']; $arrayContas = $this->Conta->find( 'list', array( 'conditions' => array( 'unidade_id' => $this->data['Filtro']['unidade_id'] ), 'fields' => array('id', 'nome'), 'recursive' => -1 )); } if(isset($this->data['Filtro']['conta_id']) && !empty($this->data['Filtro']['conta_id'])){ $arrayConditions['OR']['AgendamentoFinanceiro.conta_origem_id'] = $this->data['Filtro']['conta_id']; $arrayConditions['OR']['AgendamentoFinanceiro.conta_destino_id'] = $this->data['Filtro']['conta_id']; unset($arrayConditions['OR']['ContaOrigem.unidade_id']); unset($arrayConditions['OR']['ContaDestino.unidade_id']); } if (isset($this->data['Filtro']['entidade_id']) && !empty($this->data['Filtro']['entidade_id'])){ $arrayConditions['AND']['AgendamentoFinanceiro.entidade_id'] = $this->data['Filtro']['entidade_id']; } if (isset($this->data['Filtro']['uf']) && !empty($this->data['Filtro']['uf'])){ $arrayConditions['AND']['EntidadesEndereco.uf'] = $this->data['Filtro']['uf']; } if(isset($this->data['Filtro']['situacao']) && !empty($this->data['Filtro']['situacao'])){ $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = $this->data['Filtro']['situacao']; if($this->data['Filtro']['situacao'] == 'V'){ // se foi escolhido 'vencido': $arrayConditions['AND']['AgendamentoFinanceiroParcela.situacao'] = 'A'; $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <'] = date('Y-m-d'); } } if (isset($this->data['Filtro']['data_inicial']) && !empty($this->data['Filtro']['data_inicial'])){ $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento >='] = $this->Mswi->formatarData($this->data['Filtro']['data_inicial']); } if (isset($this->data['Filtro']['data_final']) && !empty($this->data['Filtro']['data_final'])){ $arrayConditions['AND']['AgendamentoFinanceiroParcela.data_vencimento <='] = $this->Mswi->formatarData($this->data['Filtro']['data_final']); } } $params = $this->Mswi->autoPaginate($this->params, 'AgendamentoFinanceiroParcela.data_vencimento', 'ASC', $arrayConditions); $this->AgendamentoFinanceiroParcela->bindModel(array( 'hasMany' => array( 'Anexo' => array( 'className' => 'Anexo', 'foreignKey' => 'agendamento_parcela_id' ) ) )); Ai tenho as condições e debugando o código ele me passa os índices corretamente inclusive me retorna os estados de cada registro tudo certinho if ((isset($this->params['ext']) && $this->params['ext'] == 'pdf') || isset($this->params['named']['excel'])) { $AgendamentoFinanceiroParcelasReceber = $this->AgendamentoFinanceiroParcela->find('all', array( 'conditions' => $params['conditions'], 'order' => array($params['sort'] => $params['direction']), 'contain' => array( 'AgendamentoFinanceiro' => array( 'CentroDeCusto' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ), 'fields' => array('id', 'tipo', 'situacao', 'numero_parcelas', 'periodicidade_id'), ), 'Entidade' => array( 'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao') ), 'ContaDestino' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'ContaOrigem' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'PlanoDeConta' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ), 'LancamentoFinanceiro' => array( 'fields' => array('id', 'agendamento_parcela_id', 'valor', 'tipo', 'situacao', 'observacoes'), 'CentroDeCusto' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ), 'Entidade' => array( 'fields' => array('id', 'nome_principal', 'nome_secundario', 'situacao') ), 'ContaDestino' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'ContaOrigem' => array( 'fields' => array('id', 'nome', 'contatipo_id', 'situacao') ), 'PlanoDeConta' => array( 'fields' => array('id', 'numero', 'nome', 'situacao') ) ), 'AgendamentoFinanceiroParcelaFatura' => array( 'Fatura' => array( 'Boleto' => array( 'fields' => array('id') ), 'fields' => array('id', 'formadepagamento_id') ), 'fields' => array('id', 'agendamento_financeiro_parcela_id', 'fatura_id') ), 'Anexo' => array( 'fields' => array( 'id' ) ) ), 'fields' => array( 'id', 'data_vencimento', 'valor', 'descricao', 'situacao', 'tipo', 'parcela', 'entidade_id', 'conta_origem_id', 'conta_destino_id', 'planodeconta_id', 'numero', 'observacoes', 'email_enviado', 'lancamentofinanceiro_id' ) ) ); } else { $this->paginate = array( 'conditions' => $params['conditions'], 'order' => array($params['sort'] => $params['direction']), 'page' => $params['page'], 'joins' => array( array( 'table' => 'agendamentos_financeiros_parcelas_faturas', 'alias' => 'AgendamentoFinanceiroParcelaFatura', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id = AgendamentoFinanceiroParcela.id', ) ), array( 'table' => 'agendamentos_financeiros', 'alias' => 'AgendamentoFinanceiro', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.agendafinanceira_id = AgendamentoFinanceiro.id', ) ), array( 'table' => 'lancamentos_financeiros', 'alias' => 'LancamentoFinanceiro', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.lancamentofinanceiro_id = LancamentoFinanceiro.id', ) ), array( 'table' => 'plano_de_contas', 'alias' => 'PlanoDeConta', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.planodeconta_id = PlanoDeConta.id', ) ), array( 'table' => 'entidades', 'alias' => 'Entidade', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.entidade_id = Entidade.id', ) ), array( 'table' => 'entidades_enderecos', 'alias' => 'EntidadesEndereco', 'type' => 'LEFT', 'conditions' => array( 'EntidadesEndereco.entidade_id = Entidade.id' , ) ), array( 'table' => 'contas', 'alias' => 'ContaOrigem', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.conta_origem_id = ContaOrigem.id', ) ), array( 'table' => 'contas', 'alias' => 'ContaDestino', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.conta_destino_id = ContaDestino.id', ) ), array( 'table' => 'anexos', 'alias' => 'Anexo', 'type' => 'LEFT', 'conditions' => array( 'AgendamentoFinanceiroParcela.id = Anexo.agendamento_parcela_id', ) ), ), 'fields' => array( 'AgendamentoFinanceiroParcela.id', 'AgendamentoFinanceiroParcela.data_vencimento', 'AgendamentoFinanceiroParcela.valor', 'AgendamentoFinanceiroParcela.descricao', 'AgendamentoFinanceiroParcela.situacao', 'AgendamentoFinanceiroParcela.tipo', 'AgendamentoFinanceiroParcela.parcela', 'AgendamentoFinanceiroParcela.entidade_id', 'AgendamentoFinanceiroParcela.conta_origem_id', 'AgendamentoFinanceiroParcela.conta_destino_id', 'AgendamentoFinanceiroParcela.planodeconta_id', 'AgendamentoFinanceiroParcela.numero', 'AgendamentoFinanceiroParcela.observacoes', 'AgendamentoFinanceiroParcela.email_enviado', 'AgendamentoFinanceiroParcela.lancamentofinanceiro_id', 'AgendamentoFinanceiroParcela.modified_by', 'AgendamentoFinanceiroParcela.modified', 'AgendamentoFinanceiroParcelaFatura.id', 'AgendamentoFinanceiroParcelaFatura.agendamento_financeiro_parcela_id', 'AgendamentoFinanceiroParcelaFatura.fatura_id', 'AgendamentoFinanceiro.id', 'AgendamentoFinanceiro.tipo', 'AgendamentoFinanceiro.situacao', 'AgendamentoFinanceiro.numero_parcelas', 'AgendamentoFinanceiro.periodicidade_id', 'LancamentoFinanceiro.id', 'LancamentoFinanceiro.agendamento_parcela_id', 'LancamentoFinanceiro.valor', 'LancamentoFinanceiro.tipo', 'LancamentoFinanceiro.situacao', 'PlanoDeConta.id', 'PlanoDeConta.numero', 'PlanoDeConta.nome', 'PlanoDeConta.situacao', 'Entidade.id', 'Entidade.nome_principal', 'Entidade.nome_secundario', 'Entidade.situacao', 'EntidadesEndereco.id', 'EntidadesEndereco.cidade', 'EntidadesEndereco.estado', 'EntidadesEndereco.uf', 'ContaOrigem.id', 'ContaOrigem.nome', 'ContaOrigem.contatipo_id', 'ContaOrigem.situacao', 'ContaDestino.id', 'ContaDestino.nome', 'ContaDestino.contatipo_id', 'ContaDestino.situacao', 'Anexo.id' ), 'limit' => 29, 'recursive' => -1 ); try { $AgendamentoFinanceiroParcelasReceber = $this->paginate('AgendamentoFinanceiroParcela'); } catch(NotFoundException $e) { $AgendamentoFinanceiroParcelasReceber = array(); $this->set('agendamentos_financeiros_parcelas', $AgendamentoFinanceiroParcelasReceber); $this->render('contas_receber_auto_paginate', 'ajax'); exit(); } } Passo por um array todos os estados $uf = array( 'AC' => 'AC', 'AL' => 'AL', 'AM' => 'AM', 'AP' => 'AP', 'BA' => 'BA', 'CE' => 'CE', 'DF' => 'DF', 'ES' => 'ES', 'GO' => 'GO', 'MA' => 'MA', 'MG' => 'MG', 'MS' => 'MS', 'MT' => 'MT', 'PA' => 'PA', 'PB' => 'PB', 'PE' => 'PE', 'PI' => 'PI', 'PR' => 'PR', 'RJ' => 'RJ', 'RN' => 'RN', 'RO' => 'RO', 'RR' => 'RR', 'RS' => 'RS', 'SC' => 'SC', 'SE' => 'SE', 'SP' => 'SP', 'TO' => 'TO', 'recursive' => -1 ); Mando para view $this->set('uf', $uf); E na view tenho o filtro de busca <td style="float: left;"> <div id="Grupo_ano" class="control-group"> <label class="control-label">UF</label> <div class="controls"> <div class="input-prepend input-append"> <?php echo $this->Form->select( 'Filtro.uf', $uf, array( 'class' => 'chzn-select-deselect', 'data-placeholder' => 'Selecione', 'label' => false, 'div'=> false, 'style' => 'width: 110px;', ) ); ?> </div> </div> </div> </td> Quando faço a consulta no filtro recebo esse erro e só com esse filtro Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'EntidadesEndereco.uf' in 'where clause' Alguém sabe o que pode ser errado, estão todos no mesmo nível de índice
  10. Matheus P.

    CakePHP + Envio de Email SSL e TLS

    Estou desenvolvendo um sistema de disparo de e-mail marketing, e funcionava normal, com servidores MTA. Estou utilizando a última versão do CakePHP 2, mas de uns dias para cá, o mesmo começou dar conflitos em conexão com servidores SSL, na porta 993 da "connection time out" e na pora 465 o seguinte erro: stream_socket_client() [<a href='http://php.net/function.stream-socket-client'>function.stream-socket-client</a>: SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed stream_socket_client() [<a href='http://php.net/function.stream-socket-client'>function.stream-socket-client</a>]: Failed to enable crypto stream_socket_client() [<a href='http://php.net/function.stream-socket-client'>function.stream-socket-client</a>]: unable to connect to ssl://mail.xyz.com.br:993 (Unknown error) Na porta 25 consigo conectar em qualquer servidor, mas o disparo é lento é inseguro, necessito utilizar o SSL. Testei em dois servidores, o da empresa e o da hospedagem, ambos aparecem o mesmo erro ao utilizar a porta 465. public $smtp = array( 'transport' => 'Smtp', 'emailFormat' => 'html', 'charset' => 'utf-8', 'headerCharset' => 'utf-8', 'from' => array('marketing@xyz.com.br' => 'Marketing XYZ'), 'host' => 'ssl://mail.xyz.com.br', 'port' => 993, //'port' => 465, 'timeout' => 30, 'username' => 'marketing@xyz.com.br', 'password' => '*****', ); CORE\Cake\Network\Email\SmtpTransport.php line 154 → CakeSocket->connect() */ protected function _connect() { $this->_generateSocket(); if (!$this->_socket->connect()) { throw new SocketException(__d('cake_dev', 'Unable to connect to SMTP server.'));
  11. Criei um formulário para adicionar informação ao banco, tabela places, porém, a mesma só funciona com o nome do model no plural, no caso "Places", mas quando faço isso, ele salva a linha, mas sem dados. Quando deixo no singular, ele não faz nada, clica no botão, não redireciona, nada. O editar funciona normalmente com ele no singular. admin_add.ctp <?php echo $this->Form->create('Place'); ?> <?php echo $this->Form->button('Cadastrar', array('label' => 'false')); ?> <?php echo $this->Form->end(); ?> Do modo acima, não ocorre nada, para "funcionar", basta eu colocar as configurações $this->Form->create('Places'); Antes funcionava de modo normal com "Place", não lembro o que eu fiz para deixar de funcionar. Place.php App::uses('AppModel', 'Model'); class Place extends AppModel { public $useTable = 'places'; PlacesController.php public function admin_add() { $this->set('pageTitle', 'Cadastrar Vaga'); if ($this->request->is('post')) { $this->Place->create(); if ($this->Places->save($this->request->data)) { $this->Session->setFlash('Vaga de Emprego cadastrado com sucesso!', array(), 'default', 'sucesso'); return $this->redirect(array('controller' => 'places', 'action' => 'index', 'admin' => true)); } else { $this->Session->setFlash('Erro ao cadastrar Vaga de Emprego!', array(), 'default', 'erro'); } } }
  12. aantunesl

    Migrar Sistema em Cake Php - Help!

    Amigos, boa tarde! Estou com uma certa dificuldade para migrar um sistema desenvolvido em CAKEPHP. Eu utilizava um outro dominio e funcionava tudo 100% a mais ou menos 1 ano. Hoje mudei de dominio, e o sistema não está rodando. Importei a base de dados ( mysql ) e todos os arquivos do cake, bem como o arquivo de conexão ao banco de dados, mesmo assim apresenta o erro: _________________________________ Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@... and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. ________________________________ Já contatei a hospedagem, e eles não conseguiram me atender. Tem alguem ai que possa me ajudar? Seria alguma configuração?
  13. Matheus P.

    Cadastrar vários itens em uma venda no CakePHP

    Preciso cadastrar uma venda com vários produtos, são duas dúvidas, utilizando o cakePHP, como eu faço para adicionar o ID da venda no produto no momento da requisição? Dúvida 2, serão vários grupos de itens, com o "ID do produto" e o "Preço do produto", como fazer para o CakePHP salvar todos eles em linhas diferentes, ele salva somente o último produto cadastrado. Resumindo, a venda é cadastrada na tabela Sale e os produtos da venda na tabela Item, onde serão vários com o ID da Venda, ID do Produto e o Preço do produto. Esse é a parte do formulário, nos quais se repetem dependendo da vontade do usuário/vendedor, pode ser somente 1 ou até mesmo 100. <?php echo $this->Form->input('Item.product_id', array( 'type' => 'select', 'label' => false, 'div' => false, 'div' => false, 'empty' => true, 'options' => $products, 'class' => 'select2 form-control', )); ?> <?php echo $this->Form->input('Item.amount', array( 'placeholder' => '0,00', 'label' => false, 'div' => false, 'class' => 'form-control')); ?> $this->request->data['Item']['sale_id'] = (COMO PEGAR?) $data[] = $this->request->data; $this->Item->saveAll($data);
  14. Matheus P.

    Importar CSS no CakePHP

    Galera, eu preciso importar meu css no layout/default.ctp, mas não do modo comum, e sim fazer com que ele apareça dentro das tags style. Exemplo: Modo Padrão: <?php echo $this->Html->css('style.min'); echo $this->Html->css('media_queries.min'); echo $this->fetch('css'); ?> Modo Desejado: <style> body{ margin:0 } </style> Ou seja, quero continuar fazendo tudo nas folhas de estilos, mas fazer com que ele exiba o que tem nas folhas! O motivo de fazer isso é para que o Google PageSpeed corrija o erro "Eliminar JavaScript e CSS de bloqueio de renderização no conteúdo acima da borda"
  15. Matheus P.

    Site CakePHP 2 não carrega no servidor

    Galera, desenvolvi um site em CakePhp 2.x e MySQL, no localhost ele funciona perfeitamente, mas quando jogo no servidor (UOL Host Linux), não funciona, ele carrega somente o favicon e mais nada, fica uma tela branca e o nome do site como "Título do Site" Endereço do site com erro: www.goagencia.com.br Quando tento acessar uma página interna, ele anuncia o seguinte erro: Parse error: syntax error, unexpected T_STATIC, expecting T_STRING or T_VARIABLE or '$' in /home/goagenci/public_html/lib/Cake/Core/App.php on line 221 Detalhe, eu tenho outros sites em CakePhp 2.x no mesmo servidor e funciona sem maiores problemas. View/Layouts/default.ctp <!DOCTYPE html> <html> <head> <?php echo $this->Html->charset(); ?> <title> Agência Go - Marketing Digital </title> <link rel="shortcut icon" href="<?php echo FULL_BASE_URL.$this->webroot.IMAGES_URL; ?>favicon.ico"> <meta charset="UTF-8"/> <meta http-equiv="pragma" content="no" /> <meta http-equiv="imagetoolbar" content="no" /> <meta name="description" content="Agência de Marketing Digital focada em resultados! Especializada criação de sites, SEO, comunicação, lojas virtuais, mídias sociais e outros." /> <meta name="keywords" content="agencia, go, caldas, novas, goías, marketing, digital, comunicação, desenvolvimento, site, criação, seo, midias, redes, sociais, consultoria adwords, google, patrocinado, lojas, virtuais, ecommerce, email" /> <meta name="language" content="pt-br" /> <meta name="designer" content="Agência Go - http://goagencia.com.br" /> <meta name="revisit-after" content="7 days" /> <meta name="distribution" content="global" /> <meta name="robots" content="index, follow" /> <meta name="rating" content="general" /> <meta name="googlebot" content="1. yes" /> <meta name="robots" content="noarchive" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <!-- CSS --> <?php echo $this->Html->meta('icon'); echo $this->fetch('meta'); echo $this->Html->css('style.min'); echo $this->Html->css('media_queries.min'); echo $this->fetch('css'); ?> </head> <body> <!-- nav --> <nav> <ul> <li class="js-btn-home">Home</li> <li class="js-btn-about">Sobre</li> <li class="js-btn-services">Serviços</li> <li class="js-btn-portfolio">Portfólio</li> <li class="js-btn-contact">Contato</li> </ul> </nav> <main> <?php echo $this->fetch('content'); ?> </main> <!-- footer --> <footer class="col-lg-12"> <div class="col-md-12 col-md-12 col-sm-12"> <?php echo $contVar['Contents']['footer-message']; ?> </div> </footer> <?php echo $this->Html->script('jquery-2.1.4.min'); echo $this->Html->script('jquery.mask.min'); echo $this->Html->script('main.min'); echo $this->fetch('script'); ?> </body> </html> Código fonte do site no servidor <!DOCTYPE html> <html> <head> <title>Título do Site</title> <link rel="icon" href="img/favicon.ico" /> <meta charset="UTF-8"/> <meta http-equiv="pragma" content="no" /> <meta http-equiv="imagetoolbar" content="no" /> <meta name="description" content="Descrição" /> <meta name="keywords" content="agencia, marketing, digital, midia, social, facebook, sites, sistemas, desenvolvimento" /> <meta name="language" content="pt-br" /> <meta name="copyright" content="" /> <meta name="designer" content="Agência Teste - www.agenciateste.com.br" /> <meta name="developer" content="Agência Teste - www.agenciateste.com.br" /> <meta name="revisit-after" content="7 days" /> <meta name="distribution" content="global" /> <meta name="robots" content="index, follow" /> <meta name="rating" content="general" /> <meta name="googlebot" content="1. yes" /> <meta name="robots" content="noarchive" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <!-- CSS --> <link rel="stylesheet" type="text/css" href="css/style.min.css"> <link rel="stylesheet" type="text/css" href="css/media_queries.min.css"> </head> <body> <!-- JS --> <script type="text/javascript" src="js/jquery-2.1.4.min.js"></script> <script type="text/javascript" src="js/jquery.mask.min.js"></script> <script type="text/javascript" src="js/main.min.js"></script> </body> </html> É como se ele puxasse outro arquivo, pois ambos não tem relações, observem que puxa outras meta, title, etc.
  16. Michel Frade

    Material Para Iniciar Cakephp

    Boa Tarde pessoal. Bom, estou pensando em me aventurar no cakephp 3, andei procurando algo na net...confesso que o material que achei me parece meio confuso, baixei a documentação do site do próprio, mas em inglês tá meio complicado, isso vai fazer com que eu demore mais para ler o livro. Enfim... Gostaria de saber dos amigos se alguém dispõe de algum material (Sites, Livros, Vídeos) qualquer coisa que me ajude a iniciar no cake. Desde já agradeço a ajuda de todos. Abraços!
  17. lucasl

    Chamando uma função para dentro de outra no cake

    Eu tenho uma view "add" que é um formulário de abertura de chamado help desk (referente a função add, claro), e tenho essa função "upload" que é para anexar arquivo a solicitação, que esta ligado com um component, mas eu nao quero deixa-los em view diferentes, pois se eu simplesmente enviar uma arquivo através da view "upload", a imagem "se perde" e não liga com ao chamado. Eu preciso que dentro da função "add" eu consiga chamar a função "upload", pra juntar as views. Se eu chama-la através de $this->upload(); não encontra o component, acredito que o conflito esteja no "request->data", mas nao sei existe uma forma de juntar da maneira que eu expliquei. public function add() { $post = $this->Posts->newEntity(); if ($this->request->is(['post', 'put'])) { $this->Posts->patchEntity($post, $this->request->data); $post->user_id = $this->Auth->user('id'); if ($this->Posts->save($post)) { $this->Flash->success(__('Chamado enviado ')); return $this->redirect(['action' => 'listar']); } $this->Flash->error(__('Chamado nao enviado')); } $this->set(compact('post')); } public function upload() { if ( !empty( $this->request->data ) ) { $this->Upload->send($this->request->data(['uploadfile'])); return $this->redirect(['action'=>'add']); } } Component: public function send( $data ) { if ( !empty( $data) ) { if ( count( $data) > $this->max_files ) { throw new InternalErrorException("Error Processing Request. Max number files accepted is {$this->max_files}", 1); } foreach ($data as $file) { $filename = $file['name']; $file_tmp_name = $file['tmp_name']; $dir = WWW_ROOT.'img'.DS.'Anexos'; $allowed = array('png', 'jpg', 'jpeg'); if ( !in_array( substr( strrchr( $filename , '.') , 1 ) , $allowed) ) { throw new InternalErrorException("Error Processing Request.", 1); }elseif( is_uploaded_file( $file_tmp_name ) ){ $filename = Text::uuid().'-'.$filename; $filedb = TableRegistry::get('Arquivos'); $entity = $filedb->newEntity(); $entity->filename = $filename; $filedb->save($entity); move_uploaded_file($file_tmp_name, $dir.DS.$filename); } } } } }
  18. lucasl

    Select com inner join, CakePHP

    E ai pessoal, Estou com um probleminha a algum tempo referente a um projeto que estou desenvolvendo em cakephp, minha view nao consegue ler um select com inner join da tabela Código php <?= $post->username ?> Código sql SELECT posts.*, users.username FROM posts inner join users on (posts.user_id = users.id ) Explicando melhor, essa consulta esta buscando o "username" da tabela A para a tabela B, sendo que essa tabela B minha view consegue fazer a leitura normalmente. Com esse select meu banco traz a consulta exatamente que eu preciso, mas minha view não. Agradeço se alguém me dar alguma dica; Obrigado.
  19. Hudson Kennedy

    Login via HTTP/URL com cakephp

    Alguem me ajuda validar um login com CakePHP onde será passado via url o email e senha? Ex: www.meusite.com.br/login/$email/$password Quero saber como fica meu controller pra autorizar esse login! queria autorizar um login tendo os seguintes dados: $email = fulano@cicrano.com; $password = 123456; Como ficaria meu: $this->Auth->login () PS.: Será feito uma requisição GET/POST via URL passando os dados do login.. e preciso validar esses dados!
  20. iury.moreira

    Sistema em cakephp e página index dando erro

    Bom galera, estou aprendendo a desenvolver um sistema web com CakePHP e(claro) estou com um problema. A minha página principal (index) precisa da url com o final "/index" sempre!! Por exemplo, quando faço o login, o mesmo me redireciona para "www.meusite.com/nomedoapp/works", porém, se minha url não estiver assim "www.meusite.com/nomedoapp/works/index", os botões de dropdown, os ícones e alguns outros botões não funcionam! <_< Alguém sabe o que é isso?
  21. pythondeveloper

    Criando webservice com cakePHP e AuthComponent ?

    Salve galera Estou tentando criar um WebService usando o CakePHP 2.x. Criei um Painel para fazer o CRUD que preciso, nesse painel eu tenho a tela de login que uso o AuthComponent com authenticate = Form, isso funciona bem, faz login e bloqueia as actions que preciso normalmente. O problema eh quanto ao WebService, eu crio as functions para retornar os JSON mas quando tento executar pela URL me retorna a página principal da minha aplicação. Acredito que para conseguir trabalhar com os JSON do meu webservice eu preciso fazer a autenticação por Header, pra isso estou tentando configurar o Basic Auth do CakePHP junto com o Form. Configuro tudo, mas assim que adiciono o Basic deixa de funcionar o login no Painel, eh como se o Basic liberasse todo o Painel para acesso, eu consigo acessar qualquer action pela URL sem fazer o login. Como eu consigo fazer para que o Form e o Basic do AuthComponent funcionem juntos e eu consiga consumir o webservice ? Estou tentando assim. //AppController class AppController extends Controller { public $components = array("RequestHandler", "Auth", "Session"); public function beforeFilter(){ $this->Auth->authenticate = array( 'Basic' => array('userModel' => 'User', 'fields'=> array( 'username' => 'email', 'password' => 'senha' ), 'scope' => array( 'User.status' => 1 ) ), 'Form' => array('userModel' => 'User', 'fields'=> array( 'username' => 'email', 'password' => 'senha' ), 'scope' => array( 'User.status' => 1 ) ), ); $this->Auth->loginAction = array( 'controller' => 'users', 'action' => 'login' ); $this->Auth->loginRedirect = array( 'controller' => 'matriculas', 'action' => 'index' ); $this->Auth->logoutRedirect = array( 'controller' => 'users', 'action' => 'login' ); $this->Auth->authorize = "Controller"; $this->Auth->authError = "Efetue login de acesso"; $this->Auth->allow("login"); } public function isAuthorized($user) { if (isset($user['role']) && $user['role'] === 'admin') { return true; // Admin pode acessar todas actions } return false; // Os outros usuários não podem } } //UsersController class UsersController extends AppController { /** * Components * * @var array */ public $components = array('Paginator'); public function beforeFilter() { parent::beforeFilter(); //$this->Auth->allow('loginApp', 'showPostJson'); } /** * index method * * @return void */ public function index() { $this->User->recursive = 0; $this->set('users', $this->Paginator->paginate()); } /** * view method * * @throws NotFoundException * @param string $id * @return void */ public function view($id = null) { if (!$this->User->exists($id)) { throw new NotFoundException(__('Invalid user')); } $options = array('conditions' => array('User.' . $this->User->primaryKey => $id)); $this->set('user', $this->User->find('first', $options)); } /** * add method * * @return void */ public function add() { if ($this->request->is('post')) { $this->User->create(); if ($this->User->save($this->request->data)) { $this->Session->setFlash(__('The user has been saved.')); return $this->redirect(array('action' => 'index')); } else { $this->Session->setFlash(__('The user could not be saved. Please, try again.')); } } } /** * edit method * * @throws NotFoundException * @param string $id * @return void */ public function edit($id = null) { if (!$this->User->exists($id)) { throw new NotFoundException(__('Invalid user')); } if ($this->request->is(array('post', 'put'))) { if ($this->User->save($this->request->data)) { $this->Session->setFlash(__('The user has been saved.')); return $this->redirect(array('action' => 'index')); } else { $this->Session->setFlash(__('The user could not be saved. Please, try again.')); } } else { $options = array('conditions' => array('User.' . $this->User->primaryKey => $id)); $this->request->data = $this->User->find('first', $options); } } /** * delete method * * @throws NotFoundException * @param string $id * @return void */ public function delete($id = null) { $this->User->id = $id; if (!$this->User->exists()) { throw new NotFoundException(__('Invalid user')); } $this->request->allowMethod('post', 'delete'); if ($this->User->delete()) { $this->Session->setFlash(__('The user has been deleted.')); } else { $this->Session->setFlash(__('The user could not be deleted. Please, try again.')); } return $this->redirect(array('action' => 'index')); } public function login(){ $this->layout = "layout"; if($this->request->is("post")){ if ($this->Auth->login()) { $this->redirect($this->Auth->redirect()); }else{ $this->Session->setFlash(__('Usuário ou senha inválido')); } } } public function logout(){ $this->redirect($this->Auth->logout()); } /*** metodos de webservice ****/ /** retorna para o App todos os usuarios cadastrados **/ public function findAll(){ $this->set("usuarios", $this->User->find('all')); $this->set(array( "_serialize" => 'usuarios', )); } /** adiciona novo usuario pelo App * * JSON to send * * { * 'User':{ * 'email':'myself@gmail.com', * 'senha':'aaaa', * } * } * * * **/ public function addNewUser(){ $this->layout=null; $data = $this->request->input("json_decode", true); echo $data; } }
  22. michelmfreitas

    Erro com cakephp ao trocar site de servidor

    Olá pessoal, tudo bem? Estou com um pouco de dificuldades em trocar um site de servidor. Ele utiliza o cakephp e ao mover para o novo server, ele perde todas as configurações de caminhos, pois não carrega as imagens nem os dados, completamente desconfigurado. Procurei o arquivo Config/routes.php, verifiquei os .htaccess, Config/core.php e não consegui resolver. Se eu coloco manualmente o caminho completo, dá certo, mas não é o que eu quero, pois vai dar problema com os caminhos de diretórios em outros recursos. Podem me ensinar?
  23. Matheus P.

    WideImage em "tempo real" no cakePHP

    Meu problema é o seguinte, eu estou fazendo um resize and crop em "tempo" real, para carregar a imagem em tamanhos menores e pesar menos na hora de carregamento da página. No localhost (wamp) funciona normalmente, mas no servidor (revenda uol), ele não encontra a imagem e fica aquele quadradinho de imagem indisponível. Eu fiz da seguinte forma no cakePHP 2.x WiController <?php class WiController extends AppController { public function resize_crop($w = 1, $h = 1, $image){ $this->layout = null; header("Content-type: image/jpeg"); App::import('Vendor', 'WideImage/WideImage'); $img = WideImage::load(FULL_BASE_URL.$this->webroot.IMAGES_URL.str_replace("*", "/", $image)); $img = $img->resize($w, $h, 'outside'); $img = $img->crop('center', 'center', $w, $h); $img->output('jpg', 90); } } Puxando a imagem (View) $this->Html->image(FULL_BASE_URL.$this->webroot.'wi/resize_crop/400/200/blog*'.$varImg)
  24. edinhorod

    Validação não funciona CAKEPHP

    Olá, estou estudando cakePHP e estou enrolado numa questão: VALIDAÇÃO! Segui os procedimentos no book do CAKEPHP, mas quando gravo alguma coisa num form em branco, ele grava no banco um registro em branco, ou seja, a validação não está funcionando. Tentei seguir as convenções do cakePHP. Segue abaixo os arquivos e seus códigos. Model Nome do arquivo: Aluno.php <?php class Aluno extends AppModel { public $name = 'Alunos'; public $validate = array( 'nome' => array( 'rule' => 'notEmpty', 'message' => 'Digite o nome do aluno' ) ); } ?> Controller Nome do arquivo: AlunosController.php (abaixo apenas o código para gravar/adicionar novo aluno) public function adicionar() { //TITULO DA PAGINA $this->set('title', 'Adicionar aluno'); $aluno = $this->Alunos->newEntity(); if ($this->request->is('post')) { $aluno = $this->Alunos->patchEntity($aluno, $this->request->data); if ($this->Alunos->save($aluno)) { $this->Flash->success(__('Dados gravados com sucesso.')); return $this->redirect(['action' => 'index']); } else { $this->Flash->error(__('Erro ao gravar dados.')); return $this->redirect(['action' => 'adicionar']); } } $this->set('aluno', $aluno); } View Nome do arquivo: adicionar.ctp <?php if (isset($title)) { $this->assign('title', $title); } ?> <h1>Gravar Aluno</h1> <div class="input-group"> <div class='col-xs-6'> <?php echo $this->Form->create('Post'), $this->Form->input('nome', array('class'=>'form-control')), $this->Form->input('endereco', array('class'=>'form-control')), $this->Form->input('bairro', array('class'=>'form-control')), $this->Form->input('cidade', array('class'=>'form-control')), $this->Form->input('uf', array('class'=>'form-control')), $this->Form->input('cep', array('class'=>'form-control')) ?> </div> <div class='col-xs-6'> <?php echo $this->Form->input('data_nasc', array('class'=>'form-control')), $this->Form->input('telefone', array('class'=>'form-control')), $this->Form->input('celular', array('class'=>'form-control')), $this->Form->input('email', array('class'=>'form-control')), $this->Form->input('senha', array('class'=>'form-control')) ?> </div> <div class='col-xs-12' style="padding: 20px 0 20px 10px"> <?php echo $this->Form->button('Gravar aluno', array('class'=>'btn btn-primary')); $this->Form->end(); ?> </div> </div>
  25. Hudson Kennedy

    Pegar id via Href e enviar via GET em URL (Ajax+PHP)

    Minha View Index tem o seguinte Código: <?php // Aqui digo ao cake para carregar o arquvo jquery.js e um arquivo chamado ajax.js $this->Html->script( array( 'jquery', 'ajax' ), array( 'inline' => false ) ); ?> <!-- Aqui eu crio o Botão para chamar enviar ID para Ajax e chamar meu Modal --> <a data-toggle="modal" data-target="#myModal2" class="btn btn-default" role="button" href="<?=$pessoa['Pessoa']['id'];?>">Alterar</a> <!-- Aqui é a DIV Modal onde aparece o resultado do ajax --> <div id="myModal2" class="modal fade" role="dialog" data-remote="123"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">×</button> <h4 class="modal-title">Teste Modal</h4> </div> <div id="comentarios" class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div> </div> </div> Meu Ajax fiz da seguinte foma: $(document).ready(function() { $( "#bnt" ).click(function(){ var valor_id = $(this).attr("href"); $.get( "/avp/pessoas/exibircomentarios/", valor_id, //o Problema é que o link fica quebrado.. pois a url aparece "?" // Ficando assim /avp/pessoas/exibircomentarios/?valor_id // preciso que fique: /avp/pessoas/exibircomentarios/valor_id function(data){ $("#comentarios").html(data); } ); }); }); Meu controller está assim: public function exibircomentarios($id= null){ //a idéia seria pegar o ID enviado pelo ajax, fazer a consulta e exibir no modal da index o resultado! } Estou usando Cakephp, criei outra view pra exibir os comentarios, só que preciso passar o ID da pessoa para fazer a consulta de comentarios feita por ela.. quero exibir em um Modal.. mas antes do id fica uma interrogação.. queria passar só o ID na URL
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.