Class 'Model_Student_category' not found has_many

15 views
Skip to first unread message

Jefferson

unread,
Jul 7, 2011, 1:31:41 PM7/7/11
to kohan...@googlegroups.com
Pessoa boa tarde,

o seguinte tenho uma relação N para N da seguinte forma:

Uma tabela categories_students, onde um estudante pode pertencer a várias categorias.
Logo tenho a tabela categories e students separadas.

Bom, quando vou criar o model o KO simplismente emite esta mensagem:

Class 'Model_Student_category' not found


Criei o arquivo Student_Category.php

class Model_Student_Category extends ORM
{    

}

Porém o model não é encontrado, alguma sugestão?

Bernardo - Sudeste Hosting

unread,
Jul 7, 2011, 1:35:06 PM7/7/11
to kohan...@googlegroups.com
class Model_StudentCategory extends ORM
{    

}
Sem o "_"



--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/XU6YLZ43LzYJ.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.



--
Atenciosamente,
Bernardo Sepulveda de Castro
------- ------- ------- -------- -------- --------
Sudeste Hosting...
Ideias e Soluções Web
www.sudestehosting.com.br
(21)3305-3105

Anderson Marques Ferraz

unread,
Jul 7, 2011, 1:35:24 PM7/7/11
to kohan...@googlegroups.com
Em que pasta ele está?

Em 7 de julho de 2011 14:31, Jefferson <wkeff...@gmail.com> escreveu:

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/XU6YLZ43LzYJ.
Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.



--
Anderson Marques Ferraz
UEFS - Engenharia de Computação - 2006.1
Linux user #500881 - http://counter.li.org/

Money demands that you sell, not your weakness to men's stupidity, but your talent for their reason.
(Francisco d'Anconia)

Jefferson

unread,
Jul 7, 2011, 1:37:50 PM7/7/11
to kohan...@googlegroups.com
Pasta application/classes/model/

Anderson Marques Ferraz

unread,
Jul 7, 2011, 1:42:14 PM7/7/11
to kohan...@googlegroups.com
É isso que o bernardo disse. Se você coloca um _, você está informando ao framework a localização do arquivo. Ou seja, Model_Student_Category estaria na pasta application/classes/model/student/ . Você pode ou criar uma pasta e mover o arquivo lá pra dentro, ou utilizar a sugestão do Bernardo.  Isso funciona com toda e qualquer classe do Kohana, não só models ou controllers.

Em 7 de julho de 2011 14:37, Jefferson <wkeff...@gmail.com> escreveu:
Pasta application/classes/model/

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/AI5a_OoOyPAJ.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

Jefferson

unread,
Jul 7, 2011, 1:51:33 PM7/7/11
to kohan...@googlegroups.com
Então a relação N:N não é mais composta por Model_N_N..mas sim pela propriedade has_many?

Anderson Marques Ferraz

unread,
Jul 7, 2011, 1:55:31 PM7/7/11
to kohan...@googlegroups.com
Creio que essa seja a relação has_many_through:


Em 7 de julho de 2011 14:51, Jefferson <wkeff...@gmail.com> escreveu:
Então a relação N:N não é mais composta por Model_N_N..mas sim pela propriedade has_many?

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/kOShboKCNTUJ.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

Jefferson

unread,
Jul 7, 2011, 2:03:40 PM7/7/11
to kohan...@googlegroups.com
Anderson é justamente essa relação que estava me baseando antes de postar no grupo, mas olhe esta parte:

We'll name the model for this Post_Category and the corresponding table categories_posts.

e mais abaixo:

To define the has_many "through" relationship, the same syntax for standard has_many relationships is used with the addition of a 'through' parameter. Let's assume we're working with the Post model:

Mas enfim, fiz como me sugeriram. Esta OK, porém parece que a relação N:N não esta sendo implementada corretamente, a partir do exemplo no site oficial. : (

Obrigado pessoal.

Anderson Marques Ferraz

unread,
Jul 7, 2011, 2:21:50 PM7/7/11
to kohan...@googlegroups.com
IMHO, a documentação oficial não está errada. Ela omite esse detalhe do nome refletindo a localização, mas isso é tão do cerne do Kohana que já está subentendido, na minha opinião. Contudo, a documentação estaria melhor se a localização desse arquivo fosse ressaltada.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/FQRUiqyeYAUJ.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

Jefferson

unread,
Jul 7, 2011, 2:51:48 PM7/7/11
to kohan...@googlegroups.com
Anderson, então te encomodando mais uma vez.

A solução poderia ser criar as pastas corretamente e dentro de cada model colocar as seguintes propriedades, na relação N:N em model Post e Categories, conforme exemplo do site, pois aí o join e relação N:N funcionaria corretamente com o ORM ?

protected $_has_many = array(
    'categories' => array(
        'model'   => 'category',
        'through' => 'categories_posts',
    ),
);







protected $_has_many = array(
    'posts' => array(
        'model'   => 'post',
        'through' => 'categories_posts',
    ),
);

Anderson Marques Ferraz

unread,
Jul 7, 2011, 3:59:03 PM7/7/11
to kohan...@googlegroups.com
Eu não sou a pessoa mais indicada pra dizer se tá certo errado. Entretanto, se a tua implementação funcionou, julgo que é pouco provável que não esteja certo.


--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/yfP99Iud1GwJ.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

felipe moraes

unread,
Jul 7, 2011, 5:06:32 PM7/7/11
to kohan...@googlegroups.com
por favor,


pois a tabela students_categories não precisa ter Model, visto que ela terá apenas chaves estrangeiras ..

na teoria de DB, se a tabela students_categories tivesse outros atributos que não fossem chaves estrangeiras,
ela deveria virar entidade e portanto teria um nome mais significativo (Normalização).

Vale lembrar tbm que o nome da classe representa o namespace e deve indicar o caminho para o arquivo ..

model/nome1/nome2 = Model_Nome1_Nome2

E cada porção do nome deve iniciar com maiúsculas e só deve ter o primeiro caractere como maiúsculo.

Model_Nome1Nome2 é um nome inválido. Deveria ser Nome1nome2.

outra coisa, para evitar problemas com nomes .. eu sempre coloco no plural .. e especifico o nome public $_table_name = 'students';


Em 7 de julho de 2011 14:31, Jefferson <wkeff...@gmail.com> escreveu:

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/XU6YLZ43LzYJ.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

DS php

unread,
Jul 7, 2011, 6:43:18 PM7/7/11
to kohan...@googlegroups.com
n�o seria
app/classes/model/Students/categoria.php com nome
Model_Students_category.....etc...

tive uns "pobrema" aqui parecido....

Em 07/07/2011 14:37, Jefferson escreveu:
> Pasta application/classes/model/
> --
> Voc� est� recebendo esta mensagem porque se inscreveu no grupo "Kohana

> Php" dos Grupos do Google.

> Para ver esta discuss�o na web, acesse
> https://groups.google.com/d/msg/kohana-php/-/AI5a_OoOyPAJ.


> Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.

> Para cancelar a inscri��o nesse grupo, envie um e-mail para
> kohana-php+...@googlegroups.com.
> Para obter mais op��es, visite esse grupo em
> http://groups.google.com/group/kohana-php?hl=pt-BR.

DS php

unread,
Jul 7, 2011, 6:57:05 PM7/7/11
to kohan...@googlegroups.com
desculpa, escrevi rapido

n�o seria para vc nomear assim:

Model_Pasta_Nomedoarquivo.php

sendo

models/Pasta/Nomedoarquivo.php

sendo (rs)

Models/Student/Category.php
??????

felipe moraes

unread,
Jul 8, 2011, 8:21:16 AM7/8/11
to kohan...@googlegroups.com
O lance é que essa classe nem deveria existir :D pois se trata de N:N

Em 7 de julho de 2011 19:57, DS php <ph...@dsinterativa.com.br> escreveu:
desculpa, escrevi rapido

não seria para vc nomear assim:


Model_Pasta_Nomedoarquivo.php

sendo

models/Pasta/Nomedoarquivo.php

sendo (rs)

Models/Student/Category.php
 ??????

Em 07/07/2011 19:43, DS php escreveu:

não seria

app/classes/model/Students/categoria.php com nome Model_Students_category.....etc...

tive uns "pobrema" aqui parecido....

Em 07/07/2011 14:37, Jefferson escreveu:
Pasta application/classes/model/
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/kohana-php/-/AI5a_OoOyPAJ.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+unsubscribe@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Kohana Php" dos Grupos do Google.

Para postar neste grupo, envie um e-mail para kohan...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para kohana-php+unsubscribe@googlegroups.com.

Para obter mais opções, visite esse grupo em http://groups.google.com/group/kohana-php?hl=pt-BR.

Reply all
Reply to author
Forward
0 new messages