添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
//首先从表单中传递过来一个数组: $param [ 'store_name' ]= '测试店铺' ;//这是接收的店铺名字 $data [ 'tag_ids' ] = [1,3,4,5];//这是选择的标签的id数组 //然后首先 店铺表中插入一条数据 $result = Store::create( $param ); //var_dump( $result ); //遍历选择的标签数组 绑定标签与店铺之间的关系 if (count( $data [ 'tag_ids' ])>0) { foreach ( $data [ 'tag_ids' ] as $value ) { $res [] = TagGroup::create([ 'store_id' => $result ->store_id, 'tag_id' => $value ]); //绑定关系

按照上面的代码写下来 估计在修改的店铺标签的时候 估计会炸掉! 因为首先要查 这个标签绑定过没 绑定了的 要删除 并把没有绑定过的再绑定上 多麻烦 所以 有需求就有解决方案! 如下所示我们使用 sync() 来做关系:

//首先从表单中传递过来一个数组: $param [ 'store_name' ]= '测试店铺' ;//这是接收的店铺名字 $data [ 'tag_ids' ] = [1,3,4,5];//这是选择的标签的id数组 //然后首先 店铺表中插入一条数据 $result = Store::create( $param ); //var_dump( $result ); //这里我们不需要遍历了 只需要这样写 $res = $result ->tag->sync( $data [ 'tag_ids' ]);

接下来我们需要在 Stroe model中 去定义一个关联模型

class Store extend Model{ public function tag () { return $this ->belongsToMany(Tag::class, 'tag_group' , 'tag_id' , 'store_id' );

这样 我们就可以 很方便的去给店铺 挂载标签 或者属性, sync() 为我们提供了 大部分的功能,比如在修改的时候他会自动去找,如果没有的去绑定或者删除...

非优秀程序员 JavaScript
私信