LARAVEL:销毁和分离方法

Pat*_*Rey 5 php laravel eloquent

我正在尝试使用此功能删除一个 Poll ,我需要在其中分离关系:

public function destroy($id)
{
    $poll = Poll::findOrFail($id);
    $poll->answers()->detach();
    $poll->poll_user()->detach();
    $poll->delete();
}
Run Code Online (Sandbox Code Playgroud)

但是我收到此错误消息,我不知道为什么:

调用未定义的方法 Illuminate\Database\Query\Builder::detach()

这是民意调查模型:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Poll extends Model
{

    /**
     * La table utilisée par le modèle
     *
     * @var string
     */
    protected $table = 'polls';

    /**
     * On utilise les dates de mise à jour
     *
     * @var bool
     */
    public $timestamps = true;

    /**
     * Attributs autorisés en ensignement de masse.
     *
     * @var array
     */
    protected $fillable = ['question'];

    /**
     * Relation de type 1:n
     *
     * @return Illuminate\Database\Eloquent\Relations
     */
    public function answers()
    {
        return $this->hasMany('App\Models\Answer');
    }

    /**
     * Relation de type n:n
     *
     * @return Illuminate\Database\Eloquent\Relations
     */
    public function users()
    {
        return $this->belongsToMany('App\Models\User')->withTimestamps();
    }
 }
Run Code Online (Sandbox Code Playgroud)

CUG*_*een 0

尝试以下代码:

public function destroy($id)
{
    $poll = Poll::findOrFail($id);
    $poll->answers()->dissociate();
    $poll->users()->sync([]);
    $poll->delete();
}
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,那么可能需要查看其他模型或迁移。