douyu1656 2019-02-22 08:59
浏览 68

Laravel Polymorphic Relation同时存储数据

I have morph relation between posts pages and tags table.

Posts
    id
    othercolumn

Pages
    id
    othercolumn

tags
    id
    othercolumn
    tagable_id
    tagable_type

Example: i want add post to posts table and tag to tags table at same time

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');
        }
    });

if i use function save morph relation like $post->tagable()->save($tag). will show error tagable_id cannot be null.

  • 写回答

1条回答 默认 最新

  • dongliufa6380 2019-02-22 09:56
    关注

    You can`t store to models in same time, but you can delete first model if second not saved:

    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');
        }
    });
    
    评论

报告相同问题?

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计