好的,所以我在 CakePHP 中有一个提交到数据库的表单。在这种形式中,它提交一个名为的字段client_id
,并且它也存储在数据库中。
然后我有一个视图允许我查看所有已创建的发票。要查看负责发票的客户,我目前只能通过在视图中放置:<?php echo $invoice['Invoice']['client_id']; ?>
来查看表单中输入的 id。
发票进入一个名为:invoices 的数据库
客户名称未存储在 invoices 表中,仅存储 id
客户信息存储在一个名为:clients 的数据库中
我希望能够在发票视图中实际显示客户的真实姓名,而不是客户 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'
)
);
}
?>
第二个是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'));
}