上にない場合、私は、ユーザーが保存したいときに私は私のコントローラでfindOrNew条件がID
function meta() {
return $this->hasOne('App\userMeta');
}
を持っている私のusers
モデルに2つのテーブルusers
とuser_meta
を持っている代わりに、オブジェクトの配列を返し、ユーザーメタ
function store(Request $request , $id = 0) {
$user = User::findOrNew($id);
$user->save() ;
$meta = UserMeta::findOrNew(['user_id'=>$id]);
$user->meta()->save($meta);
}
イムは、メタを保存しようと、私はこのエラー
を取得 を照らし\データベースに渡さ引数1 \雄弁\リレーションズ\ HasOneOrMany ::セーブ() を照らし\ Databaseのインスタンス\雄弁\モデル、
にする必要があり、ここで返しUserMeta::findOrNew(['user_id'=>$id])
問題がありますオブジェクトの代わりに配列... User::findOrNew($id)
自体が返され、オブジェクト....私はそれが私の条件のbecuzだと思っています(2クエリの唯一の違い)
今私がしなければならないこのようなもの
$meta = UserMeta::findOrNew(['user_id'=>$id]);
if(is_array($meta)) {
$user->meta()->save($meta[0]);
} else {
$user->meta()->save($meta);
}
私は気に入らず、間違っています!
おそらく 'UserMeta'は同じ' user_id'を持つ複数の行を持っています – jonju
@jonjuいいえ1to1の関係ですので、データベースは同じuser_idを複数回受け入れません。 – hretic
しかし、これはハズオーノの関係を1対1の関係ではありません。 – jonju