在cakephp中保存数据之间的区别

时间:2016-11-29 20:58:30

标签: php cakephp-3.0

我可以看到在CakePHP 3.x中将数据保存到我的数据库的两种不同方法,一种有效,另一种无效。除了显而易见的,我不能让一个人工作,为什么你会使用一个而不是另一个,你能说出为什么其中一种方法不适合我吗?

选项1 :(不工作)

$usersTable = TableRegistry::get('users');   
$user = $usersTable->newEntity();
$user = $usersTable->patchEntity($user, $this->request->data);
$usersTable->save()

此选项提供错误

Warning (4096): Argument 1 passed to Cake\ORM\Table::save() must implement interface Cake\Datasource\EntityInterface, none given, called in 
Notice (8): Undefined variable: entity [CORE\src\ORM\Table.php, line 1453]

选项2:有效吗

$user = $this->Users->newEntity();
$user = $this->Users->patchEntity($user, $this->request->data);
$this->Users->save($user)

1 个答案:

答案 0 :(得分:0)

第一个显然无法正常工作,因为你在save方法中缺少参数:

$usersTable->save(); // invalid
$usersTable->save($user); // valid

如果我从用户控制器保存数据,为什么要使用TableRegistry?我总是喜欢第二个。使用TableRegistry的过程有点慢(可能需要几微秒或更短)。

相关问题