我正在尝试在Laravel 5.3上构建一个应用程序,我的模型,数据库和控制器位于不同的文件夹中 . 我有以下文件夹结构:
Nitseditor
System
Controllers
Database
2016_12_28_130149_create_domains_table.php
2017_01_06_193355_create_themes_table.php
2017_01_07_140804_create_themes_domains_table.php
Models
Domain.php
Theme.php
我在域中 Build 了多对多的关系,即
public function themes()
{
return $this->belongsToMany('Nitseditor\System\Models\Domain');
}
我把 domain_theme
中的表命名为 domain_theme
现在我正在尝试获取属于控制器中的域的主题名称,如下所示:
$flashmesage = new Domain;
foreach ($flashmesage->themes as $theme)
{
return $theme->theme_name;
}
我收到一个错误:
SQLSTATE [42S02]:未找到基表或视图:1146表'nitswebbuilder.domain_domain'不存在(SQL:select domains . *,domain_domain.domain_id as domains_domain_id from domains inner join domain_domain on domains.id = domain_domain.domain_id其中domain_domain.domain_id为null且domains.deleted_at为null)
2 回答
对不起我的简短评论作为回答...我没有足够的评论声誉,
将您的
themes()
方法更改为:有关详细信息,请参阅Here
表名应该被称为
domain_theme
. 如果您使用了外键的正确名称并 Build 了正确的关系,whereHas()将适合您:然后显示所有主题名称: