2016-12-02 112 views
0

2つの要素の複合キーを持つ1つのデータベーステーブルのレコードへの変更を保存しようとしています。 Model :: updateOrCreateメソッド、またはModel :: firstOrCreateメソッドを使用しようとすると、IDが存在しないことを示すデータベースからエラーが発生します。 laravelのように、クエリを作成するときに、私が言及したプリミティブキーを無視しているように見えます。Laravel Eloquent updateOrCreate複合キー

マイモデル:

CatalogoCatLingua::updateOrCreate(
[ 
    "cataloguecategory_id"=>$trad["category"], 
    "language_id"=>$trad["language"] 
],[ 
    "name"=>$trad["langName"], 
    "description"=>$trad["langDescription"] 
] 
); 

私は "主キー" プロパティを持っているときに私が取得エラー:コントローラメソッド内

class CatalogueCatLanguage extends Model 
{ 
    public $incrementing = false; 
    protected $table = "CatalogueCatLanguages"; 
    protected $fillable = ["cataloguecategory_id","language_id","name","description"]; 
    protected $primaryKey = ["cataloguecategory_id","language_id"]; 
} 

私のコード

不正が入力したオフセット空であるか空であるか

ROR、私は「主キー」プロパティを持っていたときに私が手のコメント:

SQLSTATE [42S22]:カラム見つかりません:1054不明な列「IDを」「WHERE句」

は、私はすでにいくつかの組み合わせを試した中で私はこのエラーの原因となっているわけではありません。

ありがとうございます。

答えて

0

Laravelは複合主キーをサポートしていません(ただし、thisソリューションを試すことができます)。ここでのみ文字列を使用できます:

protected $primaryKey = "cataloguecategory_id";