如何在编辑视图布局中获取记录ID?

时间:2010-07-01 21:14:01

标签: cakephp view

如何在编辑视图布局上获取当前记录的ID?

3 个答案:

答案 0 :(得分:2)

您可以加载有问题的模型并从视图中以这种方式访问​​它(在我看来,这是一个非常糟糕的主意),或者您可以在控制器操作中“设置”它:

// In the controller action that renders the view
$this->set('current_id',$this->ModelName->id);

// Access it this way in the view/layout:
<?php echo $current_id; ?>

你也可以使用ajax获取当前的记录ID,但这听起来不像是让你受益的东西。

祝你好运

答案 1 :(得分:2)

在视图中使用$ this-&gt; data ['ModelName'] ['id']

答案 2 :(得分:0)

从2.3开始,只要你有$ this-&gt; Form-&gt; hidden(&#39; fieldname&#39;);您可以可靠地使用$ this-&gt; Form-&gt;值(&#39; ModelName.fieldname&#39;)作为表单中字段的值。呈现视图时,就像html输入标记获取基于控制器中使用的模型的值并在$ this-&gt; Form-create(&#39; ModelName&#39;)中引用时,渲染$ this时 - &gt; Form-&gt;值(&#39; ModelName.fieldname&#39;)有一个值。

在控制器中,$ this-&gt; request-&gt; data [&#39; ModelName&#39;]被设置为CakePhp中Model模型的数组,其中[&#39; id& #39;]指向id字段的值。

$this->Form->create('ModelName');
$this->Form->input('id');
$this->Form->end();

对应于控制器逻辑,其中$ this-&gt; request-&gt; data [&#39; ModelName&#39;]获得至少具有&#34; id&#34;的关联数组。 =&GT;一些id值取决于从数据库中读取的数据。

请注意,当您使用$ this-&gt; Form-&gt; value()来检索表单数据时,它将在屏幕最初由控制器呈现时起作用,但在屏幕再次渲染时可能会失败,因为模型在模型定义中使用函数的验证规则失败。

要确保使用更严格的模型验证逻辑,$ this-&gt; Form-&gt; value()是可靠的,请使用$ this-&gt; Form-&gt; hidden(&#39; fieldName&#39;) ;在多个模型验证迭代中,将数据保存在$ this-&gt; request-&gt; data [&#39; ModelName&#39;]中。