在laravel 5.3中调用未定义方法IlluminateDatabaseQueryBuilder::attac


Call to undefined method IlluminateDatabaseQueryBuilder::attach() In laravel 5.3

我需要帮助解决这个错误

调用未定义方法Illuminate'Database'Query'Builder::attach()

my Model is

public function casts()
{
    return $this->belongsToMany(Cast::class)->withTimestamps();
}

我的控制器

public function addCast(Request $request, $id)
{
    $this->validate($request, [
        'casts' => 'required'
    ]);
    $show = $this->shows->findOrFail($id);
    $show->photos()->attach($request->input('casts'));
    dd($show);
}

我的形式
 <form action="{{ route('shows.addCasts', $show->id) }}" method="POST">
            {{ csrf_field() }}
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                <span aria-hidden="true">&times;</span>
            </button>
            <h4 class="modal-title"><img src="{{ Storage::url($show->small_image) }}" height="30" width="30">{{ $show->name }}</h4>
        </div>
        <div class="modal-body">
            <div class="form-group">
                {!! Form::label('casts') !!}
                {{ Form::select('casts[]', $casts, null, ['class' => 'form-control roles']) }}
            </div>
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            {!! Form::submit('Save Cast', ['class' => 'btn btn-primary']) !!}
            {{--<button type="submit" class="btn btn-primary">Save changes</button>--}}
        </div>
        </form>
谁能告诉我我做错了什么,或者你们有什么解决办法吗谢谢你的帮助

关系的另一端也需要是belongsToMany,因为attach方法适用于多对多关系-参见已回答的帖子:

"Many to Many - attach"