小编MrS*_*les的帖子

Laravel / Eloquent:在多态表中按值搜索行

我现在陷入困境,希望有人能帮我。我正在使用多态关系,并且想要在数据库中搜索满足“父”表和“子”表中条件的行。

为了具体说明,举一个小例子。给定以下结构,例如,我想寻找价格为“600”、房间为“3”的房产。有没有办法通过雄辩来做到这一点?



表格

表属性(父级)

  • ID
  • 价格
  • 详细信息类型 [可以是“公寓”或“地块”]
  • 详细信息_id

餐桌公寓(儿童)

  • ID
  • 房间

桌子包裹(儿童)

  • ID
  • ...(没有“房间”栏)



人际关系

类别属性

public function details() {
  return $this->morphTo();
}
Run Code Online (Sandbox Code Playgroud)

课程 公寓 + 地块

public function property() {
  return $this->morphMany('Property', 'details')
}
Run Code Online (Sandbox Code Playgroud)




我尝试过的

很多,真的。但不知何故,我总是做错事或错过一些事。我认为应该有效的解决方案是:

Property::with(array('details' => function($query) {
                  $query->where('rooms', 3);
             }));
Run Code Online (Sandbox Code Playgroud)

或者

Property::with('details')
        ->whereHas('details', function($query) {
            $query->where('rooms', '=', '3');
        });
Run Code Online (Sandbox Code Playgroud)

但在这两种情况下我都会收到以下 FatalError:

Class name must be a valid object or a string
Run Code Online (Sandbox Code Playgroud)



你们中有人已经遇到过类似的问题吗?非常感谢您的任何提示。

polymorphism relation laravel eloquent

4
推荐指数
1
解决办法
5980
查看次数

Feathers-Sequelize:hasMany 只返回第一个结果,扁平化

我今天第一次尝试了feathers-sequelize,现在已经在hasMany协会上挣扎了几个小时。

我想做一个简单的projects (>hasMany>)issues关系,但我刚刚遇到第一个问题。

期望的输出:

{
    "id": 1,
    "name": "Project 1",
    "issues": [
        {"id": 1,
        "title": "Issue 1"},
        {"id": 2,
        "title": "Issue 2"},
    ]
}
Run Code Online (Sandbox Code Playgroud)

实际输出:

{
    "id": 1,
    "name": "Project 1",
    "issues.id": 1,
    "issues.title": "Issue 1",
}
Run Code Online (Sandbox Code Playgroud)

我使用feathers-cli (v3.6.1) 生成了服务并添加了前钩以包含问题。我的模型看起来像这样

项目.model.js:

module.exports = function (app) {
    const sequelizeClient = app.get('sequelizeClient');
    const projects = sequelizeClient.define('projects', {
        id: { type: Sequelize.INTEGER(10).UNSIGNED, autoIncrement: true, primaryKey: true},
        name: Sequelize.STRING,
    }, 
    {
        hooks: {
            beforeCount(options) {
                options.raw = true;
            }
        }
    }); …
Run Code Online (Sandbox Code Playgroud)

sequelize.js feathersjs feathers-sequelize

4
推荐指数
1
解决办法
785
查看次数