我想在我的标题中回显我的 MySQL 数据库中的全名。在列表中单击该名称时,它会过滤所有记录并仅显示与该名称相关的所有记录。我设法让过滤器工作,但无法在标题中显示名称。
<? $this->read('$jobs as $row'); ?>
<h1><?=$row['Employee']['first_name']?> <?=$row['Employee']['last_name']?>'s Jobs</h1>
<? $this->end(); ?>
如果我没记错的话,你正在尝试检索这个数组,我假设$jobs包含单行。
试试这个
<?php
if (isset($jobs)) {
foreach($jobs as $row){
if (isset($row['Employee']['last_name']))
$last = $row['Employee']['last_name'];
$first = 'N/A';
if (isset($row['Employee']['first_name']))
$first = $row['Employee']['first_name'];
?>
<h1><?php echo $first.' '. $last?>'s Jobs</h1>
<?php } }?>
或者
<h1><?php isset($jobs[0]['Employee']['first_name']) ? $jobs[0]['Employee']['first_name'] : 'N/A' .' '. isset($jobs[0]['Employee']['last_name']) ? $jobs[0]['Employee']['last_name'] : 'N/A'?>'s Jobs</h1>
这可以通过使用虚拟字段更容易地实现。Cake 书中的示例实际上与您的需要相同。
只需将其添加到您的 Employee 模型中:
public $virtualFields = array(
'full_name' => 'CONCAT(Employee.first_name, " ", Employee.last_name)'
);
现在可以使用 [Employee]['full_name'] 而无需使用任何逻辑。
这是涵盖虚拟字段的 Cake book 页面的链接:http: //book.cakephp.org/2.0/en/models/virtual-fields.html