我有这个Brands->Models->Versions
汽车链应用程序和版本有配件。我试图在一个数据透视表上sync()
附件和版本,但是我得到了这个错误:
(1/1) BadMethodCallException
Call to undefined method Illuminate\Database\Query\Builder::sync()
以下是Accssories(Opcionals)模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Opcional extends Model
{
public function versaos(){
return $this->belongsToMany('App\Versao');
}
}
以下是版本模型:
<?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部分:
<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控制器:
...
$versao->save();
$versao->opcionals()->sync($request->opcionals, false);
...
这个错误表明数组是正确的,传递了值,我的意思是:
at Builder->__call('sync', array(array('77', '75', '76'), false))
in Builder.php (line 1254)
数据透视表模式为:
id, opcionals_id, versaos_id
发布于 2017-08-28 22:28:38
您在Versao::opcionals上定义了一对多关系,因为您使用的是hasMany,而不是belongsToMany。
一对多关系没有同步方法。基于另一种模型,我会说你错误地定义了这种关系。
https://stackoverflow.com/questions/45921342
复制相似问题