さて、データベースに送信する 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'));
}