Pergunta

Eu estou escrevendo um teste de unidade no CakePHP 1.3 através de SimpleTest.

Eu execute o seguinte código, que funciona (ele cria como esperado)

$this->testAction('/post/add/user:'. $userId, array('method' => 'post'));

Eu preciso encontrar o ID do post adicionado para usar nos próximos dois testes de edição de um post e apagar um post.Eu tentei fazer referência através do modelo (i.e.$Post->id, $this->Post->id), mas parece que vai através de testAction não funcionam da mesma maneira.

Eu também percebo que eu poderia consultar para encontrar max(id), mas, em seguida, se há apenas acontece de ser um outro usuário sobre o sistema de teste que insere um novo post quase ao mesmo tempo, poderia estragar o resultado (pelo menos até onde eu sei - me corrija se eu estiver errado).

Foi útil?

Solução

Geralmente, a partir de um controlador de você deve usar

$this->Post->getLastInsertID();

Este é um wrapper para conectores de métodos.

$this->Post->id 

é usado para definir um id e, em seguida, recuperar ou conjunto de dados.

Outras dicas

Eu nunca usei o cakephp antes, mas com o mysql e a mysql você pode obter a última inserido IDENTIFICAÇÃO com o seguinte:

mysql_insert_id(), e $mysqli->insert_id respectivamente.

http://php.net/manual/en/function.mysql-insert-id.php

http://php.net/manual/en/mysqli.insert-id.php

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top