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 に答える