当前位置: 首页 > 面试题库 >

Laravel Eloquent-附加与同步

余弘毅
2023-03-14
问题内容

Laravel 4的口才ORM attach()和之间有什么区别sync()?我尝试环顾四周,但找不到任何东西!


问题答案:

连接():

  • 处理多对多关系时插入相关模型
  • 预期没有数组参数

例:

$user = User::find(1);
$user->roles()->attach(1);

同步():

与该attach()方法类似,该sync()方法用于附加相关模型。但是,主要区别在于:

  • sync() 接受一组ID放置在数据透视表上
  • 其次, 最重要的是 ,如果数组中不存在模型,则sync方法将从表中删除模型,并将仅新项插入到数据透视表中。

例:

user_role

id用户ID角色ID
1 12 1
2 12 5
3 12 2



$user = User::find(12);
$user->roles()->sync(array(1, 2, 3));

以上操作将删除:

id用户ID角色ID
2 12 5

并插入role_id 3到表中。

user_role表

id用户ID角色ID
1 12 1
3 12 2
4 12 3


 类似资料:
  • Laravel 4雄辩的ORM中的和之间有什么区别?我试着四处看看,但什么也找不到!

  • 我有点小问题,找不到解决办法。我想为级别信息而不是级别警告设置图案布局。如果我有一个级别信息的日志,一切都正常,但是如果日志是级别,它会被写入控制台两次(作为级别信息和作为级别警告)。只需将特定级别的所有日志写入该级别和以下级别的us日志即可。 我想将级别信息写入控制台,如:和级别如。

  • 我想根据不同的模块登录不同的应用程序... 我有3个附件:控制台,一个用于记录控制器和服务的滚动文件,另一个用于记录作业中的某些内容的滚动文件。我只想为其滚动文件记录作业的代码,并只使用另一个滚动文件记录控制器和服务。 这是我的grails log4j配置: 使用此配置,日志将写入两个滚动文件和标准输出。如果从根目录中删除滚动附加器,滚动文件将保持为空,即使为文件组指定了附加器。 有人建议将日志分

  • 问题内容: 我正在尝试通过base64编码发送文件,但我无法缝接应将标头放到哪里。 这就是到达接收者的原因。 如何指定文件是Base64编码的? 问题答案: 您可以尝试覆盖该方法并在其中设置标头。默认情况下,框架不会为您设置它,也不会干净地公开MIME bodyPart。

  • 在Ruby中, 可以使用库来添加新的类,模块或方法. 下列就是标准发布包中附加库的一览表. 读取库时需要使用require或load. 附加库一览表 文本 /文件 /网络 /输入输出 /日语 /数学 /数据库 /画面控制/CUI /GUI /日期·时间 /多线程·同步 /Unix /MS Windows /正则表达式 /GC /Design Pattern /开发工具 /命令行 /其他 Engli

  • 这正是我正在做的 试图得到这个结果 我得到的是 我已经尝试了这些参数的所有组合,但它总是向我显示一堆新行,这些行的值位于新的分隔列上,而且它还更改了我在初始数据集中定义的列的顺序。(我也尝试了。concat的各种功能,但它仍然给出了类似的问题,wven使用Axis=0) 因为即使是文档中的示例在代码结构相同的情况下也没有显示这个结果,如果有人能告诉我发生了什么,为什么发生了什么,以及如何修复这个问