데이터베이스에 저장하지 않고도 Eloquent 모델을 만들고 싶습니다. 그러나 모든 관계를 포함하여 단일 "push()"호출로 전체 구조를 저장할 수 있기를 바랍니다.Eloquent relations - belongsToMany에 추가 (저장하지 않음)
아래 예제는 내가 시도한 것을 보여줍니다. 게시물이 많은 태그를 가질 수
class Post extends Eloquent
{
public function tags()
{
return $this->belongsToMany('Tag');
}
}
class Tag extends Eloquent
{
public function posts()
{
return $this->belongsToMany('Post');
}
}
예쁜 표준을하고, 태그는 많은 게시물에 속할 수 있습니다 : 나는 다음과 같은 관계를 설정했습니다.
//create the post
$post = new Post;
//assign the tag (without saving anything yet!)
$post->tags()->add($tag);
//save the whole thing
$post->push();
관련 문서는 here하지만 그것은 언급의가없는 것 같다
//save the post
$post = new Post;
$post->save();
//assign the tag
$post->tags()->save($tag);
그러나, 내가 정말 찾고 있어요 것은 :
나는 단순히 지금이 작업을 수행 할 수 있습니다 이해 "저장하다"가 아니라 belongsToMany에 "추가"하십시오.
도움을 주시면 감사하겠습니다. 당신이
$post->tags()->add($tag);
가 무엇을 이해할 때
나는 그것이 가능하지 않다고 생각한다. 포스트와 태그는 내가 잘못하지 않은 경우 태그가 post_id를 가지며 포스트가 저장 될 때만 id가 생성되고 포스트와 관련된 태그가 붙을 수있는 방식으로 관련됩니다. – Sandeep
확실히 - 실제로 post_id와 tag_id는 모두 post_tag 테이블에 있지만 지점을 찍습니다. 나는 이것이 여전히 가능할 것이라고 생각했을 것이다. 구현 관점에서 볼 때, 피벗 전에 부모를 만들면됩니다. 확실히 가능 합니다만, 현재는 구현되어 있지 않을 수도 있습니다. – Blueberry
같은 피벗 테이블이 있고 생성 된 ID를 사용하는 대신 다른 식별자를 외래 키로 사용하면 가능할 수 있습니다. 이를 통해 피벗 테이블을 먼저 저장 한 다음 게시물 및 관련 태그를 저장할 수 있습니다. – Sandeep