【发布时间】:2014-12-09 10:04:11
【问题描述】:
我有一个将标签名称存储为“标签”的表
标签
id->Integer(unique)
title->String;
url->string;(unique)
我还有一个表来存储名为 place 的地方
地点
id->Integer(unique)
title->string
latitude->string
longtitue->string
一个地方可能有很多标签,这是我的place_tag表
place_tag
id->Integer(unique)
tag_id->Integer
place_id->Integer
当我尝试更新地点时,我需要这样做
1- 检查所有发布的标签。 2-如果之前未创建,将它们添加到“标记”数据库 3- 写与标签和地点的关系
但我认为 Laravel ORM 可以处理它,我正在四处走动但找不到好的解决方案。
请查看我的更新程序我做错了什么。
public function update($id)
{
$place=Place::findOrFail($id);
$place->fill(Input::all());
$place->save();
$tags=explode(',',Input::get('tags'));
$tags_data=array();
foreach($tags as $tag) {
$tags_data[]=new Tag(array('title'=>$tag,'url'=>$tag));
}
$place->tags()->detach();
$place->tags()->saveMany($tags_data);
return Redirect::to('admin/places');
}
【问题讨论】: