2017-08-28 9 views
0

です。Laravel: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'); 
    } 
} 

ここバージョンのモデルがあります:

​​

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> 

およびストア機能制御:

... 
$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 

誰でもどうぞ。

+0

同期は、多対多の関係ではなく、多対多です。 – Devon

答えて

1

belongsToManyではなく、hasManyを使用しているため、Versao :: opcionalsで1対多の関係が定義されています。

1対多の関係には、同期メソッドがありません。他のモデルに基づいて、この関係が正しく定義されていないと思います。

+0

素晴らしい!私はこれをパスする...両方のモデルのbelongsToManyに変更し、それはうまく動作しています! –

+0

@Marcello Pattoあなたはすでにそれをしました。コメントを削除しましょう –

関連する問題