Laravel 4雄辩的ORM中的attach()
和sync()
之间有什么区别?我试着四处看看,但什么也找不到!
让它变得更简单:
函数只将记录添加到Pivot表中。
sync
函数用新记录替换当前记录。这对于更新模型非常有用。
例子:
假设您创建了一个贴子,贴子上有许多标签,标签ID为[1,2,3]。
用户可以更新帖子及其标签。
用户将向您发送新标签ID的[3,4,5]。
如果使用sync
功能,帖子的新标签将仅为[3,4,5]。
如果使用attach
功能,帖子的新标签将为[1,2,3,4,5]。
附加():
例子:
$user = User::find(1);
$user->roles()->attach(1);
sync():
与附加()
方法类似,sync()
方法用于附加相关模型。然而,主要区别是:
sync()
接受要放在数据透视表上的ID数组例子:
用户角色
id user_id role_id 1 12 1 2 12 5 3 12 2
$user = User::find(12);
$user->roles()->sync(array(1, 2, 3));
上述操作将删除:
id user_id role_id 2 12 5
并将role_id 3
插入表中。
用户角色表
id user_id role_id 1 12 1 3 12 2 4 12 3
我有以下三种型号: 类别字段: 分类选项: 当我运行这个查询时,我得到了这个错误: SQLSTATE[42S22]:列未找到: 1054未知列'field ID'在'where子句'(SQL:选择*从其中=3)任何帮助请知道是什么问题!!?
问题内容: 我已经能够使用以下原始sql获取查询结果: 但是我还不能使它雄辩地工作。 根据一些类似的答案,我曾尝试在或中执行功能,但尚未过滤每个人的操作。就目前而言: 我至少在标题 大致 正确的方向,正确的…? 如果相关,则该模型具有两个关系: 问题答案: 因此,作为参考,我像这样解决了它: 奇怪的是,其中的子句需要语音标记才能使变量正确通过sql查询(同样,“ 2”似乎不起作用,而“ 2”却可以
嘿,伙计们,我是拉威尔的新朋友。我有这张桌子 我如何能够获取每个科目的is_correct列计数? 谢谢伙计们!
我有这个模型文件:- 这是我的查询代码:- 我正在尝试附加getFacilityAttribute以包含在结果数组中。 我试图使用受保护的$append模型数组,但得到错误:- 调用未定义的方法照亮\数据库\雄辩\关系\属于::fac性()
我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入
我是新来的拉威尔,我曾在codeigniter工作。我对雄辩的ORM概念着迷。我有一个关于雄辩能力的一般性问题。ORM的功能是什么,我的意思是我们可以获得相关表行的级别。如果你看“http://four.laravel.com/docs/eloquent#relationships 一对一 一对多 多对多 多态关系 在我看来,“一对一”意味着一级。表1表2