首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel: sync();发出

Laravel: sync();发出
EN

Stack Overflow用户
提问于 2017-08-28 22:25:23
回答 1查看 834关注 0票数 0

我有这个Brands->Models->Versions汽车链应用程序和版本有配件。我试图在一个数据透视表上sync()附件和版本,但是我得到了这个错误:

代码语言:javascript
运行
复制
(1/1) BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::sync()

以下是Accssories(Opcionals)模型:

代码语言:javascript
运行
复制
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Opcional extends Model
{
  public function versaos(){
    return $this->belongsToMany('App\Versao');
  }
}

以下是版本模型:

代码语言:javascript
运行
复制
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Versao extends Model
 {
    public function modelos(){
        return $this->belongsTo('App\Modelo');
    }
    public function opcionals(){
    return $this->hasMany('App\Opcional');
}
}

HTML部分:

代码语言:javascript
运行
复制
<div class="col-md-6">
        <label>De Série</label>
        <select class="custom-select select-multi but-to-but" multiple="multiple" name="series[]">
            @foreach($opcionals as $opcional)
          <option value="{{ $opcional->id }}">{{ $opcional->descricao }}</option>
            @endforeach
          </select>
          <small id="textHelp" class="form-text text-muted">Comece a digitar</small>
      </div>

和store function控制器:

代码语言:javascript
运行
复制
...
$versao->save();
$versao->opcionals()->sync($request->opcionals, false);
...

这个错误表明数组是正确的,传递了值,我的意思是:

代码语言:javascript
运行
复制
at Builder->__call('sync', array(array('77', '75', '76'), false))
in Builder.php (line 1254)

数据透视表模式为:

代码语言:javascript
运行
复制
id, opcionals_id, versaos_id
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-28 22:28:38

您在Versao::opcionals上定义了一对多关系,因为您使用的是hasMany,而不是belongsToMany。

一对多关系没有同步方法。基于另一种模型,我会说你错误地定义了这种关系。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45921342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档