php - Laravel - Eloquent - 暂时禁用 touchOwners

标签 php laravel eloquent

我有模型

User

在保存时对每条记录执行 touchOwners。

<?php

class User extends Eloquent {

  protected $touches = array('userDesk');

  [...]

}

当我想创建一条新记录时,问题就来了: Eloquent 地尝试触摸相关表中不存在的字段(既然用户是新创建的,那么怎么会有引用的记录)到相关表中的该用户?!?...)。

如何暂时禁用此功能,以便我可以创建新用户而不会引发异常:

Call to undefined method Illuminate \ Database \ Eloquent \ Collection :: touchOwners ()

我尝试过这个:

$user->setTouchedRelations(array());

但是当然没用...

最佳答案

要在不触摸的情况下保存模型,请将false传递给save方法:

$someModel = new SomeModel;
... // do something with your model

$someModel->save(['touch' => false]);

当然setTouchedRelations也可以工作:

$someModel = new SomeModel;
... // do what you need

$someModel->setTouchedRelations([]);
$someModel->save();

关于php - Laravel - Eloquent - 暂时禁用 touchOwners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281595/

相关文章:

php - 为什么执行查询时只更新/删除表的最后一行?

php - galera 集群的节点数必须是奇数吗?

Laravel eloquent - 多对多,选择只匹配多表

php - Laravel 框架 : How to make Compatible to TLS 1. 2

mysql - 如何使用 Eloquent Laravel 嵌套两个查询

php - 如何使用php向两个mysql表中插入记录?

php - 如何根据数据库查询加载特定文件/url

php - Eloquent 查询,列在另一个表中

mysql - Eloquent ORM - 通过现有关系加入

mysql - 如何在 LEFT JOIN 上使用 LIMIT?