0

这是我的模型:

class Persona extends AppModel {

    // This is just some arbitrary property I need to populate in the controller.
    public $TipoPersona = ''; 
}

这是我的控制器中的动作功能:

public function details($id = null) {

    // Just a typical load by id.
    $this->Persona->id = $id;
    $this->set('persona', $this->Persona->read()); 

    // Can I do something like?
    $this->Persona->TipoPersona = "Mafa Woogly";
}

如何$TipoPersona在此处的“模型”中设置属性?我的意图是然后在视图中使用该属性,例如:

<tr>
    <th>Tipo de Persona:</th>
    <td><?php echo h($persona->TipoPersona); ?></td> // Or similar?
</tr>

有什么建议么?

这行得通,但感觉很不稳定并且不是强类型的。

public function details($id = null) {
    $this->Persona->id = $id;
    $this->set('persona', $this->Persona->read());
    $this->set('tipoPersona', "Mafa woogly");
}

<tr>
    <th>Tipo de Persona:</th>
    <td><?php echo h($tipoPersona); ?></td>
</tr>
4

3 回答 3

1

该方法read()返回一个数组,无法获取TipoPersona该对象的属性。

我建议您在此表中添加一个字段来指定人员类型,然后使用 的结果read(),例如:

<?php echo $persona['Persona']['tipo_persona']; ?>
于 2012-10-03T16:19:06.690 回答
0

您可以使用 Model::afterFind() 回调将其添加到结果数组中。

您确定这不应该是模型中的常规字段吗?

于 2012-10-03T16:27:04.920 回答
0

尝试直接用set添加:

$this->set('tipoPersona', $this->Persona->TipoPersona);

它是模型中其他所有人的属性。与您在上面设置 $this->Persona->id 几行的方式相同:)

于 2012-10-03T22:13:49.993 回答