0

さて、データベースに送信する CakePHP のフォームがあります。このフォームでは、というフィールドを送信client_idし、データベースにも保存されます。

次に、これまでに作成されたすべての請求書を表示できるビューがあります。請求書を担当するクライアントを表示するには、現在<?php echo $invoice['Invoice']['client_id']; ?>、ビューに次のように配置して、フォームに入力された ID のみを表示できます。

請求書は、請求書と呼ばれる 1 つのデータベースに移動します。

クライアント名は請求書テーブルに保存されず、ID のみが保存されます

クライアント情報は、clients と呼ばれる 1 つのデータベースに保存されます。

クライアントIDではなく、実際に請求書ビューにクライアントの本名を表示できるようにしたいと考えています。

次のクエリをインデックス コントローラーに追加しようとしましたが、この後に何をすべきか、またはこれが正しいかどうかはわかりません。

$this->set('clients', $this->Invoice->query("SELECT * FROM clients WHERE id='89545'"));

そもそもこの質問を短くするために、コメントで特定のコードをリクエストしてください。つまり、コントローラーコード、ビューコードなど... よろしくお願いします。

追加の考え

私が CakePHP を使用していなかった場合、次のようなものを使用できたので、これを CakePHP の「言語」に入れる方法がわかりません。

<?php
 query($con, "SELECT name FROM clients WHERE id='$client_id'");

echo $row['name'];
?>

だいたい!

アップデート

ここに私のモデルがあります

最初のものはClient.php

<?php

class Client extends AppModel {
    public $hasMany = array(
        'Invoice' => array(
            'className' => 'Invoice',
            'foreignKey' => 'client_id'
        )
    );
}

?>

2つ目はInvoice.php

<?php

class Invoice extends AppModel {
     public $belongsTo = array(
        'Client' => array(
            'className' => 'Client',
            'foreignKey' => 'client_id'
        )
    );
}

?>

最後に、データベースから請求書を取得するために、内部で次を使用しています。InvoicesController.php

public function index() {
        $this->set('invoices', $this->Invoice->find('all'));

    }
4

2 に答える 2