【发布时间】:2016-03-11 15:57:53
【问题描述】:
我的数据库中有一个样本表。 这是我在 SamplesTable.php
中的关联$this->belongsTo('Users', [
'foreignKey' => 'user_id',
'joinType' => 'INNER'
]);
在我的 SamplesControler.php 添加方法中,我正在获取当前用户数据,如下所示:
$users = $this->Samples->Users->get($this->Auth->user('id'), [
'keyField' => 'id',
'valueField' => 'name'
]);
$this->set(compact('sample', 'users'));
在 Template/Samples/ 的 add.ctp 中,我使用这个变量来显示用户名,如下所示:
echo $this->Form->input('user_id', [
'label' => 'Client',
'type' => 'text',
'disabled' => true,
'value' => $users->name,
'required' => true,
]);
它正确显示了名称,但是当我点击提交时,它不会将用户的 id 返回到控制器以将其保存在数据库中。 因为我对这个框架很陌生,所以我不知道我是否做错了什么。
我已尝试在我的控制器添加方法中调试响应数据,但响应中没有 user_id。
如果我改变了
$users->name to $users
在我的模板文件中,它在文本字段中以 json 格式显示有关该用户的所有数据,如下所示:
{ "id": 4, "name": "firstname lastname", "title": "Engineer", "street": "122", "city": "Lahore", "state": "Punjab", "email_primary": "abc@gmail.com", "created": "2016-03-04T07:45:42+0000", "modified": "2016-03-04T09:56:17+0000"}
【问题讨论】:
-
代码太多,所以我没有在这里发布,我只是发布了我遇到问题的部分,我可以给你更多。你想看什么?
-
然后它显示该用户的 id 而不是名称字段并且仍然不保存用户并给出需要用户的验证错误。
-
我想我不清楚你想要做什么;当我在数据库中“添加”(
insert)一条记录时,我通常在数据库保存/事务发生之前没有它的id。听起来你好像在做某种update,而不是。 -
你能来聊天室吗?我可以告诉你你问的一切
-
我需要你澄清一件事。在表单中,用户是否需要输入他们的用户名?还是他从选择框中选择了一个名字?
标签: php cakephp cakephp-3.0