I have a database, with 2 main tables :
etablissement
site
So i 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 you can see, here's how my relations are working :
"etablissement" can have multiples "site"
"site" can only have one "etablissement"
"etablissement" primary key is "code_etablissement"
"site" primary key is "code_site", having the foreign key "code_etablissement" referencing to "etablissement.code_etablissement"
I want to count how many "site" an "etablissement" have. This is why i created the function "etablissementCountSites()" above. So, in my controller, i am making this : 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 my blade page i have this : 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... But i got this as error :
Table 'MYNET.etablissements' doesn't exist (SQL: select * from etablissements
)
I searched all over the code, i don't have any "etablissementS" word anywhere. But i had previously. Is it possible that Laravel didn't refreshed this ?