Laravel присоединение моделей для отношения многие ко многим дает неопределенную ошибку переменной - PullRequest
0 голосов
/ 27 мая 2020

У меня есть модель ReleasePackages и модель артефактов, и между ними есть отношение "многие ко многим".

ReleasePackages.php соответствует приведенному ниже:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class ReleasePackages extends Model
{
    public $timestamps = false;

    /**
    */
    public function artifacts()
    {
        return $$this->belongsToMany(
            'App\Models\Artifacts',
            'release_packages_artifacts',
            'release_package_id',
            'artifact_id'
        );
    }
}

и Artifacts.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Artifacts extends Model
{
    public function artifact_type()
    {
        return $this->hasOne('ArtifactTypes');
    }

    public function release_packages()
    {
         return $$this->belongsToMany(
            'App\Models\ReleasePackages',
            'release_packages_artifacts',
            'artifact_id',
            'release_package_id'
        );
    }
}

Теперь в моем контроллере у меня есть следующий код:

$releasePackage = new ReleasePackages();

$releasePackage->package_name = $request->input('name');
$releasePackage->created_by = 1;
$releasePackage->approval_status = 'pending';

$releasePackage->save();
$artifacts = $request->input('artifacts');

$releasePackage->artifacts()->attach($artifacts);

Правильно сохраняет данные в таблице release_packages. Но при попытке связать отношения выдает ошибку:

exception: "ErrorException"
file: "/var/www/html/maxdev/app/Models/ReleasePackages.php"
line: 15
message: "Undefined variable: {"package_name":"Package","created_by":1,"approval_status":"pending","id":15}"

Будет полезно, если кто-то сможет указать, что здесь пошло не так. Или есть какой-нибудь другой способ привязать отношения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...