Lumen: PhpStorm говорит, что во многих отношениях есть ошибка - PullRequest
0 голосов
/ 22 ноября 2018

Я использую Lumen 5.1 и последнюю версию PHPStorm, у меня проблема во многих отношениях со многими, не уверен, что это ошибка кодирования или я должен сообщить об ошибке в PHPStorm.

Модель задачи

  public function user()
    {
        return $this->belongsToMany('App\Models\Auth\User', 'task_user');
    }

    public function domain()
    {
        return $this->hasOne('App\Models\Domain', 'domain_id');
    }

Модель пользователя

public function tasks()
{
    return $this->belongsToMany(Task::class, 'task_user');
}

Модель UserTask

class UserTask
{
}

Иногда все отлично работает, как в добавлении

$task = new Task();
$task->domain_id = $domainId;
$task->title = $title;
$task->due_date = $dueDate;
$task->submit_date = Carbon::now();
$task->created_by = $userId;
$task->save();
$task->user()->sync($assignee);

Нонапример, в редактировании

$task = Task::find($taskId);
            $task->title = $task->title === $title ? $task->title : $title;
            $task->due_date = $task->due_date === $dueDate ? $task->due_date : $dueDate;
            if ($task->is_done != $isDone) {
                $task->is_done = $isDone;

                if ($isDone == 0) {
                    $task->closed_by = null;
                    $task->closed_date = null;
                } else {
                    $task->closed_by = $userId;
                    $task->closed_date = Carbon::now();
                }
            }
            $task->save();
            $task->user()->sync($assignee);
            return $this->response->statusOk();

Эта строка

$task->user()->sync($assignee);

PhpStorm говорит:

Method 'user' not found in \Illuminate\Database\Eloquent\Collection|\Illuminate\Database\Eloquent\Model|null less... (Ctrl+F1) 
Inspection info: Referenced method is not found in subject class.

По сути, это тот же код, который работает в добавлении, если ясообщить об ошибке в PhpStorm или я что-то не так сделал?

...