Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola gente começei a trabalhar com cake a pouco tempo
mais to num beco sem saida
eu criei uma tabela categorias com esses campos
id categoria status
e uma tabela sub categorias com esse campos
id categoria_id sub_categoria
meu controle e esse aqui
<?
class SubCategoriasController extends AppController {
var $name = "Sub_categorias";
var $helpers = array('Html', 'Form','Javascript','Session'); // carregamos alguns helpers
var $paginate = array('limit' => 2, 'page' => 1, 'order'=>array('SubCategoria.id'=>'asc'));
// aqui definimos o limite de resultados por página, e a ordem da paginação
function index()
{
$this->set('SubCategoria', $this->paginate());
// aqui foi tranquilo eu exibir os dados paginados
}
function incluir()
{
$subcategoria = $this->SubCategoria->find('list');
// result aqui embaixo do comando assim
// DESCRIBE sub_categorias 3 3 2
//2 DESCRIBE categorias 3 3 2
//3 SELECT `SubCategoria`.`id` FROM `sub_categorias` AS `SubCategoria` WHERE 1 = 1
}
}
?>
meu modelo esta assim :
class Subcategoria extends AppModel {
var $name = "sub_categoria"; //para tornar o script compinatível com php4
var $belongsTo ='categoria';
}
?>
como eu ativo a funcao incluir para gerar uma select da categoria pq ela dar erro se eu colocar categoria dentro da funcao incluir:(
quando eu coloco assim no controle
$subcategoria = $this->Categoria->find('list');
o erro que dar e esse
// Notice (8): Undefined property: SubCategoriasController::$Categoria [APP\controllers\sub_categorias_controller.php, line 33]
//como eu chamo so as categorias aqui
alguem tem uma ideia de como e feito
Beleza meu Velho
eu vou testar a solução que você me indicou e posto o resultado
agora que eu tava vendo esse site aqui e seu
mais o nome das tabelas dentro banco e :
categorias
sub_categorias
eu estou aprendendo cake la kkkkkkkkkkkkk
um abraço e ja retorno o resultado
Obrigado
opa bom dia lucas a tua dica funfou certinho
function incluir()
{
$valor=$this->SubCategoria->categoria->find('all');
debug($valor);
}
aqui embaixo o resultado do debug
app\controllers\subcategorias_controller.php (line 37)
Array
(
[0] => Array
(
[categoria] => Array
(
[id] => 1
[categoria] => Camisa polo
[status] => 1
)
)
[1] => Array
(
[categoria] => Array
(
[id] => 2
[categoria] => camisa listrada
[status] => 1
)
)
)
funfou na boa http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
eu so na entendi naquela parte que você falou dos model,ja que as tabelas sao categorias, sub_categorias mesmo
dentro do banco de dados :(
class SubCategoriaController extends AppController {
var $name = 'SubCategorias'; // É SubCategorias mesmo, não Sub_categorias. O mesmo para o Model (que é "Subcategoria");
var $uses = array('SubCategoria','Categoria'); // Dizemos que queremos utilizar estes models
}
obrigado pela dica
eu tava agora de manha procurando no seu blog algo para html helper
eu to montando um script jquery
que validar formulario
sendo que o input do formulario deveria sair assim e eu nao sei como montar dessa forma :huh:
tem como tu postar essa dica para mim
<input type="text" id="que eu definir" title="um titulo de aviso"/>
ou seja o input com title :)
Você não entendeu sobre o atributo Model::$uses?
Sobre o input, para gerá-lo desta forma, você deve fazer:
$this->Form->input('nome_da_coluna', array('id' => 'meuIdAqui', 'title' => 'Meu titulo aqui'));
Se a su versão for 1.26 less, utilize:
$form->input('nome_da_coluna', array('id' => 'meuIdAqui', 'title' => 'Meu titulo aqui'));
sendo sincero nao :(
mais o que eu entendi nessa parte desse model se eu tive errado jogar tomate :)
class SubCategoriaController extends AppController {
var $name = 'SubCategorias'; // É SubCategorias mesmo, não Sub_categorias. O mesmo para o Model (que é "Subcategoria");
var $uses = array('SubCategoria','Categoria'); // Dizemos que queremos utilizar estes models
}
o que eu entendi que esse var users ele usar as duas tabelas separada
sendo que você escreve diferente , esse model nao e o mapeamento da tabelas que eu estou usando com foi criada no banco :?
obrigado pela dica dos input :)
Não é users, é "uses" (do ingles "usa").
Você está dizendo quais models você quer carregar/usar neste controller.
Por exemplo. Você tem um controller Produtos, com seu model Produto.
Na página de produtos, você também quer exibir noticias, então vamos precisar utilizar o model "Noticia" também - além do model Produto.
Mas ele não existirá, a não ser que você diga para o cake que você quer usar ele:
class ProdutosController extends AppController {
var $name = 'Produtos';
var $uses = array('Produto','Noticia');$this->Noticia; // acessamos o Model Noticia
$this->Produto; // acessamos o Model ProdutoIsso só é possivel porque falamos para o cake que queriamos **usa-lo** através do atributo Controller::$uses. Caso você não tivesse especifica os models que queria utilizar, exibiria um erro como o seu
// Notice (8): Undefined property: ProdutosController::$Produto[APP\controllers\produtos_controller.php
Espero que tenha entendido =)Se tiver duvidas, só falar
OBS: Existem outras maneiras de carregar um model, como por exemplo, Controller::loadModel()
Agora deu para entende legal
e o porque do meu erro
por isso que você sugeriu :)
$this->SubCategoria->Categoria->find('all');
pq eu tinha no meu
meu modelo esta assim :
class Subcategoria extends AppModel {
var $name = "sub_categoria"; //para tornar o script compinatível com php4
var $belongsTo ='categoria';
}
?>
se nao tivesse um relancionamento
eu teria que usar metodo aqui Controller::$uses
aprendendo e vivendo
obrigado pela atenção e a dica do input title :)
Este erro é disparado porque você deve especificar os models que você quer que determinado controller utilize através da propriedade Controller::$uses;
Por exemplo: (note a propriedade $name também)
class SubCategoriaController extends AppController {
}Agora isso deverá funcionar:
$this->Categoria
Existe uma outra maneira. O seu model tem um relacionamento com Categoria certo? SubCategoria belongsTo Categoria. Deste modo, você pode acessar Categoria através de uma propriedade. Veja um exemplo:
$this->SubCategoria->Categoria->find('all');