Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel/PHP:确实存在的未识别索引_Php_Laravel 4 - Fatal编程技术网

Laravel/PHP:确实存在的未识别索引

Laravel/PHP:确实存在的未识别索引,php,laravel-4,Php,Laravel 4,我有一个具有属性的对象: protected $recipients = array(); 在我的一个方法中,我使用以下方法使用关联数据数组设置$recipients属性的内容: public function setRecipientData($recipientData){ foreach($recipientData as $key => $value){ $this->recipients[$key] = $value; } } 当

我有一个具有属性的对象:

protected $recipients = array();
在我的一个方法中,我使用以下方法使用关联数据数组设置
$recipients
属性的内容:

public function setRecipientData($recipientData){
    foreach($recipientData as $key => $value){
        $this->recipients[$key] = $value;
    }
}    
当我转储
$this->recipients
的内容时,数组的结果如下所示:

array (size=2)
  0 => 
    array (size=6)
      'email'       => string 'info@mycompany.com' (length=29)
      'userEmail'   => string 'xxx@yyy.com' (length=11)
      'first_name'  => string 'Test' (length=4)
      'last_name'   => string 'User' (length=4)
      'jobTitle'    => string 'Customer User' (length=13)
      'phoneNumber' => string '123.456.7890' (length=12)
private function getRecipientEmails(){
    $emails = array();
    foreach($this->recipients as $recipient){
        $emailPair = array('email' => $recipient['userEmail']);
        $emails[] =  $emailPair;
    }
    return $emails;
}
我还有一个属性,它将仅从属性中提取电子邮件地址,如下所示:

array (size=2)
  0 => 
    array (size=6)
      'email'       => string 'info@mycompany.com' (length=29)
      'userEmail'   => string 'xxx@yyy.com' (length=11)
      'first_name'  => string 'Test' (length=4)
      'last_name'   => string 'User' (length=4)
      'jobTitle'    => string 'Customer User' (length=13)
      'phoneNumber' => string '123.456.7890' (length=12)
private function getRecipientEmails(){
    $emails = array();
    foreach($this->recipients as $recipient){
        $emailPair = array('email' => $recipient['userEmail']);
        $emails[] =  $emailPair;
    }
    return $emails;
}
我遇到的问题是,当我运行方法
getRecipientsEmails()
时,我得到了错误:

Undefined index: userEmail
我不明白为什么它没有看到索引
“userEmail”
。如果转储嵌套数组,它将显示一个值:

private function getRecipientEmails(){
    $emails = array();
    foreach($this->recipients as $recipient){
        dd($emailPair = array('email' => $recipient['userEmail']));
        $emails[] =  $emailPair;
    }
    return $emails;
}
结果:

array (size=1)
  'email' => string 'xxx@yyy.com' (length=20)
我试着用composer卸载自动加载,但没什么区别

有人能帮我指出正确的方向吗


编辑:对不起,我意识到我在原来的帖子中写错了方法。我添加了原始的
getRecipientEmails()
方法和显示数据的转储

$recipient
现在是您的索引,而不是导致未定义索引的数组:userEmail转换它时它不是多维数组,如果您想访问它(您处理的数组)
此->收件人['userEmail']
应该这样做it@DrixsonOse尼娜,我意识到我在原来的帖子中发布了错误的方法版本。我不知道这是否会改变你评论背后的任何东西。另外,我希望recipients属性是一个多维数组,因为它可能包含多个联系人的数据。@John Conde,你昨晚将这篇文章标记为重复。我通读了你标记为答案的帖子。我可能错过了,但我不明白这是如何解决我的问题的。我昨晚更新了我的帖子,加入了我的方法的原始版本,该方法在
getRecipientEmails()
方法中包含了
email
数组的变量初始化,但它仍然无法解决问题。如果引用的是recipients属性,则默认情况下会初始化该属性。我还缺什么吗?