Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde. Estou tentando implementar um sistema onde eu controlo os acessos dos registros pelo usuario.
No exemplo eu tenho
as tabelas:
users: id,nome
modelos: id,descricao,marca_id,user_id
marcas:id,descricao,user_id
implementei todas as actions para eu cadastrar marcas, usuario se loga e tem acesso somente as marcas que ele cadastrou, mas estou tento dificuldade para implementar os modelos, quando tento relacionar nos model ele me da erro de sql,
cada modelo pode ter uma marca, tipo, switch modelo tal, da marca tal .
e essas tabelas somente os donos dela o usuario em questao podem editar os registros
no model do user, coloquei hasmany para modelos e marcas
em modelos estou tendo dificuldade pois ao meu ver ela pertece a usuario e marca, quando relaciono colocando belongs para as duas tabela me retorna erro dizendo que o campo marca_id nao existe, mas ta criado no banco.
Entao eu acho que estou comentendo erro nos relacionamentos, alguem pode me orientar ?
Um exemplo mais basico que estou tentando implementar
modelos: id,nome,marca_id
marcas: id,nome
modelo tal possui marca tal
Models lá ta relacionado e tudo mais
modelo
$belongsTo = array ('Marca');
marca
$hasMany = array ('Modelo');
no controller dos meus modelos
eu busco a marca
$marca = $this->Modelo->Marca->find('
list);
$this->set(compact('marcas'));
no meu view
na hora de cadastrar o modelo
eu tenho o campo marca que eh tipo int que é o campo marca.id referente a tabela a marca
e tendo buscar no meu input
$this->Form->input('marca_id', array ('type' => 'select','options' => $marcas));
assim no meu input select retorna somente os id das marcas, como que eu faço para eu mostrar o nome da marca e gravar o id
eu consegui até fazer mostrar no nome ai eu mexia no controller no find ('list' , array ('fields' => 'nome')) só que assim eu salvo o nome e não a id da marca.
tu vai fazer o seguinte
1-no model Marca tu tem que colocar
public $displayField = 'nome';
2-no controller Modelos a pesquisa vai ser assim
$marca = $this->Modelo->Marca->find('
list);
$marca = $this->Modelo->Marca->find('list', array(
'fields' => array('Marca.id', 'Marca.nome'),
));
3-na view vai ficar assim
<?php echo $this->Form->input('marca_id'); ?>
eu faço assim e dá certo.
testa aí e me diz o resultado
Funcionou sim, o que estava faltando para mim era o os parametros de busca no find, os relacionamento já estavam certos. Agradeço a ajuda.
posta o código dos models