php - 将 foreach 的值从 Controller 传递到 View

标签 php cakephp foreach

我试图将 foreach 值从 Controller 传递给 View ,但我只收到一个空数组。在下面的代码中,基于 foreach 中的值,我执行了一个查询,并且想要设置该值,以便可以在 View 中使用它。

foreach($logresponse as $row1){
    $customerid = $row1['customerid'];
    $topicid = $row1['topicid'];
    $todolistid = $row1['todolistid'];
    $sqlQry="select leadid,customerid as leadcustid,formname from lead_frontend where customerid='$customerid' order by leadid DESC limit 1";
    $leadInfo[] = $this->execute_flatten($sqlQry);
    if($topicid == 1){
        $query2="SELECT a.*,b.username,b.user_id,b.group_id,b.email as salesmanemail,d.email,d.phone1,e.subject,e.subject1,e.content,e.embed_template FROM todolist_frontend as a LEFT JOIN users_backend as b ON a.salesmanid=b.user_id LEFT JOIN customer as c ON c.customerid=a.customerid LEFT JOIN customer_address as d ON d.customerid=a.customerid LEFT JOIN admin_email_action as e ON a.combination_id=e.combination_id where a.todolistid='$todolistid'";
    }
    else if($topicid == 2){
        $query2="SELECT a.*,b.username,b.user_id,b.group_id,b.email as salesmanemail,d.email,d.phone1,e.subject,e.subject1,e.call_info as content FROM todolist_frontend as a INNER JOIN users_backend as b ON a.salesmanid=b.user_id INNER JOIN customer as c ON c.customerid=a.customerid INNER JOIN customer_address as d ON d.customerid=a.customerid INNER JOIN admin_call_action as e ON a.combination_id=e.combination_id where a.todolistid='$todolistid'";
    }
    else if($topicid == 18){
        $query2="SELECT a.*,b.username,b.user_id,b.group_id,b.email as salesmanemail,d.email,d.phone1,e.subject,e.subject1,e.call_info as content FROM todolist_frontend as a INNER JOIN users_backend as b ON a.salesmanid=b.user_id INNER JOIN customer as c ON c.customerid=a.customerid INNER JOIN customer_address as d ON d.customerid=a.customerid INNER JOIN admin_managercall_action as e ON a.combination_id=e.combination_id where a.todolistid='$todolistid'";
    }
    else{
        $query2="SELECT a.*,b.username,b.user_id,b.group_id,b.email as salesmanemail,d.email,d.phone1,e.content,e.subject1,f.emailname as subject,g.mailername AS mailersubject FROM todolist_frontend as a LEFT JOIN users_backend as b ON a.salesmanid=b.user_id LEFT JOIN customer as c ON c.customerid=a.customerid LEFT JOIN customer_address as d ON d.customerid=a.customerid LEFT JOIN admin_mailer_action as e ON a.combination_id=e.combination_id LEFT JOIN emailtype_backend as f ON e.subject=f.emailid LEFT JOIN mailer_backend AS g ON e.subject = g.mailerid where a.todolistid='$todolistid'";
    }
    $result = $this->execute_flatten($query2);

    $subjecttodo = array();
    foreach ($result as $res1){
        if($res1['topicid'] == 1 && !empty($res1['subject'])){
            $subject1 = $res1['subject'];
            $sub_qry="select emailname from emailtype_backend where emailid=$subject1";
            $subject_result=$this->execute_flatten($sub_qry);
            $subjecttodo=isset($subject_result['0']['emailname']) ? $subject_result['0']['emailname'] : "";
        }
        if($res1['topicid'] == 2 || $res1['topicid'] == 18){
            $subjecttodo=$res1['subject'];
        }
        if($res1['topicid'] == 8){
            $subjecttodo=$res1['mailersubject'];
        }
    $this->set('subjecttodo', $subjecttodo);   
    }
    $this->set('leadInfo', $leadInfo);
}

最佳答案

首先检查您是否在 foreach 循环内将值传入变量 $subjecttodo$leadInfo 中。然后将该值分配给数组。

 $subjecttodoArray[] = $subjecttodo; 
 $leadInfoArray[] = $leadInfo;     

之后在 Controller 函数中尝试像你一样传递这个数组集

$this->set('subjecttodo', $subjecttodoArray); 
$this->set('leadInfo', $leadInfoArray);

然后尝试像这样在 View 内打印数组值

echo "<pre>";
print_r($subjecttodo);
echo "</pre>";

echo "<pre>";
print_r($subjecttodo);
echo "</pre>";

希望这有帮助。

关于php - 将 foreach 的值从 Controller 传递到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32109357/

相关文章:

php - PHP 上的 MySql 查询

php - 执行连接 UPDATE 查询时 mysql_query 返回 true

mysql - cakephp 3 使用另一个表中的数据填充列表

arrays - 如果字符串的子字符串存在于同一数组中,则删除字符串

javascript - 如何使用 forEach 从 ng-repeat 中删除 json 对象

php - 使用 php 格式化从另一个网站收集的原始文本

php - 我如何从数据库中提取数据并重新检查最初检查和提交的复选框?

javascript - 如何在 jQuery onload 中选中复选框

php - CakePHP v3.x 如何在没有数据库连接的情况下烘焙

.htaccess - CakePHP 和 .htaccess 资源缓存