Laravelのsave()メソッドが機能しなかったので、私は複合プライマリキーを持っています。したがって、私はsaveメソッドをオーバーライドする必要があります。たとえば、私の主キーは、column_aとcolumn_bからなる複合キーです。 saveメソッドをどのようにオーバーライドするか、どこに置くかの例を教えてください。Laravel 5 Eloquent Saveメソッドをオーバーライド
私の主キー:column_a、COLUMN_B
は、私は以下のことを試してみた:
protected function setKeysForSaveQuery(Builder $query)
{
parent::setKeysForSaveQuery($query);
$query->where('locale', '=', $this->locale);
return $query;
}
は、私は上記のコード見つけましたが、それは私が唯一の値を読み込むメソッドを呼び出しても、500内部サーバーエラーが発生しますデータベースから。私はcolumn_bに$ primaryKey = 'column_a'と 'locale'を設定しました。 $ this-> localeが何を指しているのか分かりませんでしたか?ここで
は、私が見つけたもう一つの方法ですが、それはあまりにもprotected $secondaryKey = 'column_b';
function newQuery()
{
$query = parent::newQuery();
$query->where($this->secondaryKey, '=', $this->type);
return $query;
}
繰り返しますが、私はます$ this->はタイプが参照するかわからなかったが失敗しました。
はあなたが私に例を与えることができますか?私はid句からIDを削除して、where句(他の列)をクエリに追加する方法がわかりません – OrgGila
正確に何を意味するのか分かりませんでしたが、これは新しい質問ですので、答え、そこにあるすべてのことを(コードで、正確に何をしたいのか、すでに試したもので)記述します。私や他の人があなたを助けると確信しています。 –
私が試したことをちょうど入れました。 – OrgGila