Laravel雄辩-> load()不返回预期结果

乌德斯

我有这样设置的关系,

Organisation.php

public function projects()
    {
        return $this->belongsToMany('Project');
    }

Project.php

public function organisations()
    {
        return $this->belongsToMany('Organisation');
    }

我正在运行以下查询,

$project = Project::where('user_id', '=', ResourceServer::getOwnerId())
                    ->whereNull('organisation_id')
                    ->get(array(
                        'projects.id',
                        'projects.name', 
                        'projects.description',
                        'projects.total_cost',
                        'projects.sales_person', 
                        'projects.project_manager',
                        'projects.client_id',
                        'projects.start_date',
                        'projects.finish_date',
                        'projects.organisation_id',
                        'projects.created_at',
                        'projects.user_id',
                        'projects.owner_id',
                        'projects.status'
                    ));

        $project->load('salesperson');
        $project->load('projectmanager');
        $project->load('clients')->load('clients.users');
        $project->load('organisations')->load('organisations.users');
        $project->load('collaborators');
        $project->load('user');

        $owned_by_me = $project->toArray();

我得到的结果看起来像这样,

[
    {
        "id": "56",
        "name": "iOS Application",
        "description": "An iOS application that will be available on iPhone and iPad. Something that will change the way we manage projects.",
        "total_cost": "5000.00",
        "sales_person": "88",
        "project_manager": "86",
        "client_id": "39",
        "start_date": "2014-01-01",
        "finish_date": "2014-12-10",
        "organisation_id": "114",
        "created_at": "2014-12-15 13:20:07",
        "status": "1",
        "owner_id": "114",
        "user_id": "1",
        "is_admin": "1",
        "salesperson": {
            "id": "88",
            "email": "[email protected]",
            "first_name": "Stephen",
            "last_name": "Mooney",
            "display_name": "stephenmooney",
            "initials": "SM",
            "remember_me": null,
            "active": "1",
            "invite_code": null,
            "default_organisation": null,
            "forgotten_code": null,
            "login_type": "normal",
            "api_token": null,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "-0001-11-30 00:00:00",
            "deleted_at": null
        },
        "projectmanager": {
            "id": "86",
            "email": "[email protected]",
            "first_name": "Matt",
            "last_name": "Fell",
            "display_name": "Matt Fell",
            "initials": "MF",
            "remember_me": null,
            "active": "1",
            "invite_code": null,
            "default_organisation": null,
            "forgotten_code": null,
            "login_type": "normal",
            "api_token": null,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "-0001-11-30 00:00:00",
            "deleted_at": null
        },
        "clients": {
            "id": "39",
            "name": "Simon's Test",
            "information": "",
            "address": "This is an address and it can used for loads\r\n\r\nmultiple lines and stuff",
            "website": "http://website.com",
            "email": "[email protected]",
            "phone": "07799009988",
            "type": "client",
            "add_all": "0",
            "created_at": "2014-12-16 10:16:20",
            "updated_at": "2014-12-17 16:22:55",
            "user_id": "1",
            "owner_id": "114",
            "users": [
                {
                    "id": "85",
                    "email": "[email protected]",
                    "first_name": "Richard",
                    "last_name": "Benson",
                    "display_name": "richardbenson",
                    "initials": "RB",
                    "remember_me": null,
                    "active": "1",
                    "invite_code": null,
                    "default_organisation": null,
                    "forgotten_code": null,
                    "login_type": "normal",
                    "api_token": null,
                    "created_at": "-0001-11-30 00:00:00",
                    "updated_at": "-0001-11-30 00:00:00",
                    "deleted_at": null,
                    "pivot": {
                        "client_id": "39",
                        "user_id": "85"
                    }
                },
                {
                    "id": "88",
                    "email": "[email protected]",
                    "first_name": "Stephen",
                    "last_name": "Mooney",
                    "display_name": "stephenmooney",
                    "initials": "SM",
                    "remember_me": null,
                    "active": "1",
                    "invite_code": null,
                    "default_organisation": null,
                    "forgotten_code": null,
                    "login_type": "normal",
                    "api_token": null,
                    "created_at": "-0001-11-30 00:00:00",
                    "updated_at": "-0001-11-30 00:00:00",
                    "deleted_at": null,
                    "pivot": {
                        "client_id": "39",
                        "user_id": "88"
                    }
                }
            ]
        },
        "user": {
            "id": "1",
            "email": "[email protected]",
            "first_name": "Simons",
            "last_name": "Ainley",
            "display_name": "simonainley",
            "initials": "SA",
            "remember_me": null,
            "active": "1",
            "invite_code": null,
            "default_organisation": "114",
            "forgotten_code": "7bffdaa1b5b238f5ba8b13e46c53dc46",
            "login_type": "normal",
            "api_token": null,
            "created_at": "-0001-11-30 00:00:00",
            "updated_at": "2015-01-28 10:48:41",
            "deleted_at": null
        },
        "organisations": [],
        "collaborators": [
            {
                "id": "1",
                "email": "[email protected]",
                "first_name": "Simons",
                "last_name": "Ainley",
                "display_name": "simonainley",
                "initials": "SA",
                "remember_me": null,
                "active": "1",
                "invite_code": null,
                "default_organisation": "114",
                "forgotten_code": "7bffdaa1b5b238f5ba8b13e46c53dc46",
                "login_type": "normal",
                "api_token": null,
                "created_at": "-0001-11-30 00:00:00",
                "updated_at": "2015-01-28 10:48:41",
                "deleted_at": null,
                "pivot": {
                    "project_id": "56",
                    "user_id": "1"
                }
            },
            {
                "id": "91",
                "email": "[email protected]",
                "first_name": "Alan",
                "last_name": "Test",
                "display_name": "alantest",
                "initials": "AT",
                "remember_me": null,
                "active": "1",
                "invite_code": null,
                "default_organisation": null,
                "forgotten_code": null,
                "login_type": "normal",
                "api_token": null,
                "created_at": "2014-12-12 11:13:07",
                "updated_at": "2014-12-12 11:13:07",
                "deleted_at": null,
                "pivot": {
                    "project_id": "56",
                    "user_id": "91"
                }
            }
        ]
    }

]

如您所见,organizations属性为空,但是由于拥有organization_id,它应该返回一个organization。

为什么不做呢?

贾里克·特卡奇克(Jarek Tkaczyk)

这是belongsTo

public function organisation()
{
    return $this->belongsTo('Organisation');
}

belongsToMany是与数据透视表的mm关系,在这里不是这种情况,因为您有organisation_id,对吗?如上更改它,您就很好了。

在这种情况下,关系的另一端也应更改为hasMany(尽管在您粘贴的代码中这不是问题):

public function projects()
{
    return $this->hasMany('Project');
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Laravel雄辩的“ with” /“ load”返回null

来自分类Dev

转换Laravel雄辩的结果

来自分类Dev

Laravel雄辩的结果收集

来自分类Dev

Laravel雄辩with()->返回null

来自分类Dev

Laravel Eloquent orWherePivot不返回预期结果

来自分类Dev

Laravel:雄辩的all()不返回对象数组

来自分类Dev

Laravel:雄辩的all()不返回对象数组

来自分类Dev

laravel雄辩地不返回任何数据

来自分类Dev

Laravel雄辩的小组结果数组

来自分类Dev

Laravel雄辩或未能按预期工作

来自分类Dev

Laravel雄辩不基于布尔列检索结果

来自分类Dev

Laravel 5-雄辩-分页结果

来自分类Dev

基本选择与Laravel雄辩不工作

来自分类Dev

Laravel雄辩的模型:仅返回列名称

来自分类Dev

Laravel雄辩地返回错误的数据

来自分类Dev

Laravel雄辩的查询返回分组对象的数量

来自分类Dev

Laravel雄辩的模型:仅返回列名称

来自分类Dev

Laravel 5.1雄辩的收集没有返回正确的结果

来自分类Dev

如何从Laravel 5.1中雄辩模型返回的结果访问值

来自分类Dev

返回雄辩的更改而不更新laravel上的记录

来自分类Dev

从Laravel雄辩的风格中获取透视结果的最新信息

来自分类Dev

Laravel:如何使用雄辩的Orm接收多维结果集

来自分类Dev

Laravel雄辩,如果没有结果,请更改查询

来自分类Dev

雄辩的Laravel-仅在存在关系时检索结果

来自分类Dev

如何将雄辩的结果放入数组Laravel

来自分类Dev

Laravel雄辩的子查询并计算子查询结果

来自分类Dev

laravel雄辩的查询哪里有错误的结果

来自分类Dev

Laravel雄辩的小组结果在数组中

来自分类Dev

将Laravel雄辩的结果映射到多维数组?