Laravel Polymorphic Relation хранит данные одновременно - PullRequest
0 голосов
/ 22 февраля 2019

У меня морфинг между страницами сообщений и таблицей тегов.

Posts
    id
    othercolumn

Pages
    id
    othercolumn

tags
    id
    othercolumn
    tagable_id
    tagable_type

Пример: я хочу добавить сообщение в таблицу публикаций и тег в таблицу тегов одновременно

DB::transaction(function(){
        $post = new Post;
        $post->othercolumn = Input::get('something');

        $tags = new Tag;
        $tag->othercolumn = Input::get('something');


        // here function to store post and tag


        if( //post or tag not created )
        {
            throw new \Exception('Failed to create post or tag');
        }
    });

, если я использую функцию сохранения отношения морфинга, как $ post-> tagable ()-> сохранить ($ таг).покажет ошибку tagable_id не может быть нулевым.

1 Ответ

0 голосов
/ 22 февраля 2019

Вы не можете сохранить модели одновременно, но вы можете удалить первую модель, если вторая не сохранена:

DB::transaction(function(){
    $post = new Post;
    $post->othercolumn = Input::get('something');

    $tag = new Tag;
    $tag->othercolumn = Input::get('something');


    if(!$post->save() || !$tag->save())
    {
        throw new \Exception('Failed to create post or tag');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...