model - Laravel eloquent count hasMany relations -


i have database, 2 main tables :

etablissement site 

so created 2 models

site.php

class site extends eloquent {     public function etablissement() {         return $this ->hasone('etablissement','code_etablissement','code_site');     } } 

etablissement.php

class etablissement extends eloquent {     public function sites() {         return $this ->hasmany('site', 'code_etablissement', 'code_etablissement');     }      public function etablissementcountsites() {         return $this->sites->count();     } } 

as can see, here's how relations working :

"etablissement" can have multiples "site"

"site" can have 1 "etablissement"

"etablissement" primary key "code_etablissement"

"site" primary key "code_site", having the foreign key "code_etablissement" referencing "etablissement.code_etablissement"

i want count how many "site" "etablissement" have. why created function "etablissementcountsites()" above. so, in controller, making : homecontroller.php

private function gen_accueil()     {         $etablissement = etablissement::select('code_etablissement','nom')->from('etablissement')->orderby('code_etablissement')->get();         $sitescounter = etablissement::with('etablissementcountsites')->get();          return view::make('accueil',  array('which_actif' => 0, 'etablissement' => $etablissement, 'compteursites' => $sitescounter));     } 

and in blade page have : accueil_blade.php

@for ($i = 0 ; $i < count($etablissement); $i ++)             <a class="btn popoveroption" data-content="nombre de sites total : {{$compteursites[$i]}}" rel="popover" data-original-title="{{$etablissement[$i]->code_etablissement}}" data-placement="bottom" href="{{ url::to('dashboard_etablissement/' . $etablissement[$i]->code_etablissement)}}">{{$etablissement[$i]->nom}}</a><br> @endfor 

everything should work... got error :

table 'mynet.etablissements' doesn't exist (sql: select * etablissements)

i searched on code, don't have "etablissements" word anywhere. had previously. possible laravel didn't refreshed ?

laravel when assume table name if 1 provided, , making plural of model name. model, add:

class establissment extends eloquent  {     protected $table = 'thetablenamehere'; } 

also, naming table plural considered best practise.


Comments

Popular posts from this blog

java - Oracle EBS .ClassNotFoundException: oracle.apps.fnd.formsClient.FormsLauncher.class ERROR -

c# - how to use buttonedit in devexpress gridcontrol -

nvd3.js - angularjs-nvd3-directives setting color in legend as well as in chart elements -