HT
Acessar informação de uma composição
Pessoal, não estou conseguindo acessar as informações de uma composição. Tenho tabela fabricante e a tabela subfabricante(Codigo, id_fabricante). Como são vários código para um único fabricante, preciso mostrar todos esses código.
Model: fornecedor
quando coloco o resultado em print_r tenho:
Fabricantes Object ( [subFabricantes:Fabricantes:private] => Array ( [0] => SubFabricantes Object ( [data:protected] => Array ( [id] => 1 [codigo] => 1141 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) [1] => SubFabricantes Object ( [data:protected] => Array ( [id] => 2 [codigo] => 1514 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) [2] => SubFabricantes Object ( [data:protected] => Array ( [id] => 3 [codigo] => 1531 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) [3] => SubFabricantes Object ( [data:protected] => Array ( [id] => 4 [codigo] => 1532 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) ) [data:protected] => Array ( [id] => 1 [fantasia] => Eurofarma [email] => ) [vdata:protected] => [attributes:protected] => Array ( ) ) 1 - Eurofarma - 1
Model: fornecedor
- <?php
- class Fabricantes extends TRecord
- {
- const TABLENAME = 'fabricantes';
- const PRIMARYKEY= 'id';
- const IDPOLICY = 'max'; // {max, serial}
- private $subFabricantes;
-
-
- /**
- * Method getsubFabricantes
- * Return the Customer' subFabricantes's
- * @return Collection of subFabricantes
- */
- public function getsubFabricantes()
- {
- return $this->subFabricantes;
- }
- /**
- * Load the object and its aggregates
- * @param $id object ID
- */
- public function load($id)
- {
- // load subFabricantes
- $this->subFabricantes = SubFabricantes::where('id_fabricante', '=', $id)->load();
-
- return parent::load($id);
- }
- }
- ?>
quando coloco o resultado em print_r tenho:
Fabricantes Object ( [subFabricantes:Fabricantes:private] => Array ( [0] => SubFabricantes Object ( [data:protected] => Array ( [id] => 1 [codigo] => 1141 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) [1] => SubFabricantes Object ( [data:protected] => Array ( [id] => 2 [codigo] => 1514 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) [2] => SubFabricantes Object ( [data:protected] => Array ( [id] => 3 [codigo] => 1531 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) [3] => SubFabricantes Object ( [data:protected] => Array ( [id] => 4 [codigo] => 1532 [id_fabricante] => 1 ) [vdata:protected] => [attributes:protected] => Array ( ) ) ) [data:protected] => Array ( [id] => 1 [fantasia] => Eurofarma [email] => ) [vdata:protected] => [attributes:protected] => Array ( ) ) 1 - Eurofarma - 1
Herbet, não sei se entendi sua dúvida. Pelo print_r os dados estão retornando né? Como você está tentando utilizá-los?
Isso, estão retornando. O problema é justamente esse, não estou conseguindo utiliza-lo. Já tentei de várias formas.
$fabricantes = new Fabricantes(1);
$fabricantes->fantasia;
eu consigo acessar o nome do fabricante assim, mais os códigos do subfabricante não consigo.
Tente o seguinte:
Muito obrigado, funcionou perfeitamente.