ユーザーAに属するデータをユーザーBにコピーします。まず、ユーザーAのデータを取得します。存在しない場合はデータを挿入し、存在する場合は更新することによって、ユーザーから別のユーザーにデータをコピーする方法はありますか?
$item = item::where('id_user', $user_a)->get();
// id_user is FK inside item table
そして例えばユーザA
$test = item::createOrUpdate($item->toArray());
に、ユーザBの既存のレコードを更新/作成するために以下のコードを使用します。
Item
id | id_user | id_item
1 1 1
2 1 2
3 1 3
4 2 1
上記のように、id_user 1は3個のアイテムで構成され、id_user 2個は1個のアイテムで構成されています。 id_user 2にid_item 2とid_user 2をid_user 1からコピーしたいと思います。
私はすべてのデータをユーザAからユーザBにコピーしたいのですが、アイテムがあれば更新します。そうでなければ、ユーザBに新しいレコードが挿入されます。私の道は正しいのですか?試しましたが、エラーは表示されませんが、ユーザーBの作成または更新は行われません。
:https://laravel.com/docs/5.4/eloquent-relationships#many-to-many
編集:
あなたはすでに私の入力を与えたので、あなたはユーザに、例えば、あなたの関係の方法でこれを行うことができますユーザーの単一レコードを取得するときに 'get()'の代わりに 'first()'を使用してください。その後、あなたのコードが動作します。 –
は多対多の関係ですか?そうであれば、関係を説明する関数を持つことができ、Aに添付されているものをBに添付することができます。 – Wreigh
@SagarGautamこれは単一のレコードではありません。 – Crazy