【问题标题】:CakePHP - input box restricted with linked EmployeeID, from previous pageCakePHP - 输入框受链接的 EmployeeID 限制,来自上一页
【发布时间】:2013-11-14 09:51:35
【问题描述】:

我有 2 个相关的表,比如说:
- 员工和
- 家庭

它们都通过employeeID 作为主键和外键连接。相信大家都明白这个标准条件。

我已经使用“蛋糕烘焙”创建了所有模型、控制器和视图。 一切都很好,直到我想添加新的家庭。 场景如下:

-- 在首页上,列出了所有员工,以及他们的 VIEW、EDIT 和 DELETE 按钮。
-- 我点击其中一名员工的“查看”按钮,比如员工 ID 为 123 的员工 MAZANDRE
-- 我会看到 MAZANDRE 的详细信息
-- 在详情下方,有一个添加新家庭的按钮。
-- 我将 ADD NEW FAMILY 超链接修改为这个

<li><?php echo $this->Html->link(__('New Family'), array('controller' => 'families', 'action' => 'add', $employee['Employee']['id'])); ?> </li>

--然后我也像这样修改了FamiliesController中的add函数

    public function add($id = null) {
    $this->Family->id = $id;
    if ($this->request->is('post')) {
        $this->Family->create();
        if ($this->Family->save($this->request->data)) {
            $this->Session->setFlash(__('The Family has been saved'));
            $this->redirect(array('action' => 'index'));
        } else {
            $this->Session->setFlash(__('The Family could not be saved. Please, try again.'));
        }
    }

    $employees = $this->Family->Employee->findById($id);

    $this->set(compact('employees'));
}

-- 然后我点击这个添加新家庭按钮
-- 有一个下拉框列出了所有员工的详细信息(身份证、姓名、出生日期、性别等)。
链接显示http://x.x.x.x/hr/family/add/123

我想要的是,INPUTBOX 应该只列出一个名称:MAZANDRE,并且不能修改(禁用) 原来是这样的echo $this-&gt;Form-&gt;input('employee_id') 我该怎么做?

感谢您的帮助 :-)
非常感谢。

问候,
安德里

【问题讨论】:

  • 请从家庭控制器粘贴您的操作代码“添加”。
  • 嗨,安萨里,谢谢。我修改了我的问题,因为我得到了一些线索 ;-) 需要一点接触。
  • 它实际上是在添加一个家庭后重定向到索引操作,这是您获得完整列表的地方。您还需要显示索引功能
  • 我只是添加了另一个信息。 echo $this->Form->input('employee_id')。能否请您提供更具体的安萨里?
  • 您只想在列表中看到 Mazandre 对吗?为此,您需要在发布添加操作时在家庭控制器中显示操作代码“索引”

标签: php mysql cakephp


【解决方案1】:

请试试这个

  echo $this->Form->input('employee_id',array('readonly','value' => 'MAZANDRE'));

这将使输入字段成为只读值,并且该值将通过表单提交。

【讨论】:

  • 但是当我选择不同的员工时,价值应该是不同的。如果您这样做,我单击的每个员工详细信息都会产生相同的值 = MAZANDRE。它应该不同。谢谢你的帮助:-)
【解决方案2】:

瞧! 我得到了我自己的答案。 我只是检查这个网址cakephp: find statement with 'contain'

感谢 Moyed Ansari 和 user2484796

我只是把这些代码 在我的 FamiliesController


$employees = $this-&gt;Family-&gt;Employee-&gt;findById($id);

替换为

$employees = $this-&gt;Family-&gt;Employee-&gt;find('list',array('conditions' =&gt; array('Employee.id' =&gt; $id)));

就是这样! :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多