- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有这些表:
条目表
---------------------------------
| id | blog_id | title |
---------------------------------
| 1 | 1 | 1st Entry |
---------------------------------
博客表
-----------------
| id | name |
-----------------
| 1 | 1stBlog |
-----------------
字段组表
-------------------------
| id | blog_id | name |
-------------------------
| 1 | 1 | Group1 |
-------------------------
字段表
---------------------------------
| id | field_group_id | name |
---------------------------------
| 1 | 1 | field_1 |
---------------------------------
值表
------------------------------------------
| id | field_id | entry_id | value |
------------------------------------------
| 1 | 1 | 1 | Hello World |
------------------------------------------
现在我已经在我的模型上建立了这些关系:
class Entry extends Model
{
public function blog()
{
return $this->belongsTo(Blog::class);
}
}
class Blog extends Model
{
public function entries()
{
return $this->hasMany(Entry::class);
}
public field_group()
{
return $this->hasOne(FieldGroup::class);
}
}
class FieldGroup extends Model
{
public function fields()
{
return $this->hasMany(Entry::class);
}
public function blog()
{
return $this->belongsTo(Blog::class);
}
}
class Field extends Model
{
public function group()
{
return $this->belongsTo(FieldGroup::class, 'field_group_id');
}
public function values()
{
// this method should get the values from the Values table per entry id
return $this->hasManyThrough(Value::class, Entry::class, 'id', 'entry_id');
}
}
class Value extends Model
{
public function field()
{
return $this->belongsTo(Field::class, 'field_id');
}
}
使用这个查询我可以
$entry = Entry::with('blog.field_group.fields')->find(1)
我可以获得该条目及其博客、字段组和字段。我也想获取与条目关联的值,
$entry = Entry::with('blog.field_group.fields.values')->find(1)
我在使用哪种关系时遇到了麻烦。任何帮助深表感谢。我刚开始使用 laravel。
最佳答案
试一试......
用 field_id 替换 ID:
return $this->hasManyThrough(Value::class, Entry::class, 'id', 'entry_id');
像这样:
return $this->hasManyThrough(Value::class, Entry::class, 'field_id', 'entry_id');
因为您使用的是标准的 Laravel 列名,所以您可以进一步简化:
return $this->hasManyThrough(Value::class, Entry::class);
参见:https://laravel.com/docs/5.1/eloquent-relationships#has-many-through
关于php - Laravel hasManyThrough 但必须只返回一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32943710/
描述: 我的应用程序结构如下:Property与 Manager 有多对多关系, 和 Unit与 Property 有一对多关系,即一个经理可以管理多个属性,一个属性可以有多个经理帐户,一个属性可以有
我有这张 table , categories: id | name | slug Products: id | name | slug | category_id | brand_id Brands
我正在为一个项目开发小型 CMS,其表格如下: - pages - id … - translations - page_id … - menus - id
我想获取帖子的标签。 这是我的数据透视表 post body tag name post_tag post_id tag_id 据我所知并能够理解hasManyThrough() 是为
在我的 Laravel 应用程序中,我有以下类: class Product extends Model { public function extended() {
如果我们取 Laravels example在 hasManyThrough 上并将其更改如下: countries id - integer name - string users
我正在使用 laravel 创建一个消息传递应用程序。我使用了四种迁移(用户、对话、对话成员和对话回复)。我还定义了模型之间的关系。 用户的详细信息将存储在用户表中。对话 ID 将存储在对话表中。每个
我有以下型号: Product BaseProduct BaseCode Series 它们中的每一个都是一个独立的实体,但它们是相关的。 Product有一个指向 BaseProduct 的外键,
这些 HasManyThrough 与 HasAndBelongsToMany 之间有什么区别?? https://docs.strongloop.com/display/public/LB/HasM
我正在尝试获取属于custom_view 的所有过滤器。例如:$user->custom_views->first->filters 下面的代码给了我一个空集合。我已经尝试了所有方法,但无法理解为什么
我需要有关 Laravel Eloquent 模型关系的帮助。我有三张 table : 项目 item_id slideshowID 幻灯片 slideshow_id 图像 image_id slid
我浪费了一整天的时间,但无法弄清楚 hasManyThrough 关系。 我有这样的关系: # get related users public function users() { retu
我的用户模型中有以下关系 public function events($user_id) { return $this->find($user_id)->hasManyThrough('Ev
Laravel 文档似乎表明 hasManyThrough 声明只能用于“深”两级的关系。更复杂的关系呢?例如,一个User有很多Subject,每个Subject有很多Deck,每个Deck有很多C
我有 3 个表:company users invoice。 公司 hasMany 用户。 一个用户 belongsTo 一个公司并且一个用户 hasMany 发票。 一张发票属于一个用户。 现在
您好,我的实体之间存在以下关系。 User - id - other stuff NeighborhoodFilter - id - userId - neighborhoodId
在 Eloquent 的文档中,据说我可以将所需关系的键传递给 hasManyThrough . 假设我有名为 Country、User、Post 的模型。一个 Country 模型可能有许多 Pos
table groups ( id int auto_increment primary key, ... ); table users ( id int auto_incre
我有这些表: 条目表 --------------------------------- | id | blog_id | title | ---------------------
我有这些表: 条目表 --------------------------------- | id | blog_id | title | ---------------------
我是一名优秀的程序员,十分优秀!