Laravel雄辩的计数有很多关系

时间:2014-11-19 13:40:01

标签: laravel model eloquent

我有一个数据库,有两个主表:

etablissement
site

所以我创建了2个模型

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();
    }
}

正如您所看到的,我的关系如何发挥作用:

"源泉馆"可以有倍数"网站"

"位点"只能有一个" etablissement"

"源泉馆" 主键是" code_etablissement"

"位点" 主键是" code_site",外键" code_etablissement"引用" etablissement.code_etablissement"

我想算一下" site" " etablissement"有。这就是我创建函数" etablissementCountSites()"以上。 所以,在我的控制器中,我正在做这个: 的 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));
    }

在我的刀片页面中,我有这个: 的 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

一切都应该有效...但我得到了这个错误:

表格&#39; MYNET.etablissements&#39;不存在(SQL:select * from etablissements

我搜索了所有代码,我没有任何&#34; etablissement S &#34;在任何地方。但我以前。 Laravel有可能没有刷新这个吗?

1 个答案:

答案 0 :(得分:0)

Laravel实际上假设表名称(如果提供了一个),并且通过制作多个模型名称来实现。在您的模型中,添加:

class Establissment extends Eloquent 
{
    protected $table = 'thetablenamehere';
}

此外,将表命名为复数被认为是最佳实践。