Laravel关系问题更新至版本6

时间:2020-07-27 08:36:22

标签: php laravel eloquent laravel-5.6 laravel-6

我将laravel版本从5.6升级到一周前,以便在我的API上实现新功能,问题是在更新之后,我的关系之一就中断了。 登录后的某个时间点,我需要根据3级关系(cme_permissions.subcomisionData.members)上的连接者来检索一些信息,并且在第二级(cme_permissions.subcomisionData)断开,我使用dd()步骤查看了一步一步 我才刚刚进入编程的世界,我不知道到底发生了什么,谢谢您的帮助。

查询:

User::where('id', Auth::user()->id)
      ->with('cme_permissions.subcomisionData.members')->get();

第一个关系(用户):

    public function cme_permissions() {
      return $this->hasMany('App\CME\CMEPermission');
    }

第二关系:

class CMEPermission extends Model
{
    public $table = 'cme_permissions';

    public function subcomisionData() {
        return $this->belongsTo('App\CME\CMESubcomision', 'subcomision');
    }

    function user() {
      return $this->belongsTo('App\User');
    }
}

第三种关系:

class CMESubcomision extends Model
{
  public $table = 'cme_subcomision';
  public $incrementing = false;
  public $timestamps = false;

  public function members() {
    return $this->hasMany('App\CME\CMEPermission', 'subcomision')
      ->with('user');
  }

}

这仍然适用于我的升级前版本,因此我不知道问题是否出在composer.json中的依赖项上,或者是什么,无论这是什么: Composer.json

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "^6.3",
        "laravel/framework": "6.0.*",
        "laravel/passport": "^7.1",
        "laravel/tinker": "^1.0",
        "league/csv": "^9.5",
        "elibyy/tcpdf-laravel": "6.0.*"
    },
    "require-dev": {
        "barryvdh/laravel-ide-helper": "^2.6",
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^3.0",
        "phpunit/phpunit": "^7.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

编辑:它不会在第二个关系上显示任何错误,只是一个空值

      #relations: array:1 [
        "cme_permissions" => Illuminate\Database\Eloquent\Collection {#469
          #items: array:1 [
            0 => App\CME\CMEPermission {#466
              +table: "cme_permissions"
              #connection: "mysql"
              #primaryKey: "id"
              #keyType: "int"
              +incrementing: true
              #with: []
              #withCount: []
              #perPage: 15
              +exists: true
              +wasRecentlyCreated: false
              #attributes: array:5 [
                "id" => 2
                "user_id" => 1685
                "email" => "PRU_0004@mail.es"
                "subcomision" => "1.1"
                "cme_role" => "Vocal"
              ]
              #original: array:5 [
                "id" => 2
                "user_id" => 1685
                "email" => "PRU_0004@mail.es"
                "subcomision" => "1.1"
                "cme_role" => "Vocal"
              ]
              #changes: []
              #casts: []
              #dates: []
              #dateFormat: null
              #appends: []
              #dispatchesEvents: []
              #observables: []
              #relations: array:1 [
                "subcomisionData" => null
              ]

0 个答案:

没有答案
相关问题