如何在编辑视图布局上获取当前记录的ID?
答案 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;]中。