在 laravel 5.3 中调用未定义的方法 Illuminate\Database\Query\Builder::attach()

Posted

技术标签:

【中文标题】在 laravel 5.3 中调用未定义的方法 Illuminate\\Database\\Query\\Builder::attach()【英文标题】:Call to undefined method Illuminate\Database\Query\Builder::attach() In laravel 5.3在 laravel 5.3 中调用未定义的方法 Illuminate\Database\Query\Builder::attach() 【发布时间】:2017-03-31 08:16:05 【问题描述】:

我需要帮助解决这个错误

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

我的模特是

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) "  > $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>

谁能告诉我我做错了什么或者你们有什么解决办法 感谢您的帮助

【问题讨论】:

您的意思是输入casts()-&gt;attach() 而不是photos()-&gt;attach() 吗? 谢谢我没看 【参考方案1】:

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

"Many to many - attach"

【讨论】:

以上是关于在 laravel 5.3 中调用未定义的方法 Illuminate\Database\Query\Builder::attach()的主要内容,如果未能解决你的问题,请参考以下文章

升级到 laravel 5.4 后调用未定义的方法

更新到 Laravel 5.3 后播种时调用未定义的方法 Illuminate\Database\Query\Builder::lists()

在更新到Laravel 5.3后播种时调用未定义的方法Illuminate Database Query Builder :: lists()

Laravel 5.3未授权()AuthenticationException致命错误

未定义变量:Laravel 5.3 中的 _ENV

在 Laravel 5.3 项目中使用 PHPUnit 存根类方法调用的问题