首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >拉勒维尔雄辩数论hasMany关系

拉勒维尔雄辩数论hasMany关系
EN

Stack Overflow用户
提问于 2014-11-19 13:40:01
回答 1查看 492关注 0票数 0

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

代码语言:javascript
运行
复制
etablissement
site

所以我创建了两个模型

Site.php

代码语言:javascript
运行
复制
class Site extends Eloquent {
    public function etablissement() {
        return $this ->hasOne('Etablissement','code_etablissement','code_site');
    }
}

Etablissement.php

代码语言:javascript
运行
复制
class Etablissement extends Eloquent {
    public function sites() {
        return $this ->hasMany('Site', 'code_etablissement', 'code_etablissement');
    }

    public function etablissementCountSites() {
        return $this->sites->count();
    }
}

正如你所看到的,下面是我的亲戚们的工作方式:

“确认”可以有多个“站点”“

“站点”只能有一个“确认”

主键是"code_etablissement“

"site“主键是"code_site",具有引用"etablissement.code_etablissement”的外键 "code_etablissement“。

我想数一数一个“确认区”有多少个“网站”。这就是为什么我在上面创建了函数"etablissementCountSites()“。所以,在我的控制器中,我要做这个:HomeController.php

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
@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

一切都应该正常..。但我觉得这是个错误

etablissements**)**不存在表'MYNET.etablissements‘(SQL: select * from )

我搜索了所有的代码,我在任何地方都没有"etablissementS“单词。但我以前有过。拉勒维尔有没有可能没刷新过这个?

EN

回答 1

Stack Overflow用户

发布于 2014-11-19 15:38:01

如果提供了一个表名,则Laravel实际上采用了表名,而它是通过使模型名的复数来实现的。在您的模型中添加:

代码语言:javascript
运行
复制
class Establissment extends Eloquent 
{
    protected $table = 'thetablenamehere';
}

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27018290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档