Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.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
Php 当解码到同一个表时,参考2个单独的位置_Php_Json_Laravel 4 - Fatal编程技术网

Php 当解码到同一个表时,参考2个单独的位置

Php 当解码到同一个表时,参考2个单独的位置,php,json,laravel-4,Php,Json,Laravel 4,我试图解码json文件的集合,并将选定的值输出到datatable。我需要的是检查我的数据库中是否已经存在条目。我有一个名为ec2 instances的表,用于显示从文件a配置和awsAccountId中的两个位置解码的数据。如果我var_dumpcfi->awsAccountId,然后它找到相应的值,我可以解码保存并显示配置项,但不能显示ID <?php function from_camel_case($input) { preg_match_all('!([A-Z][A-Z

我试图解码json文件的集合,并将选定的值输出到datatable。我需要的是检查我的数据库中是否已经存在条目。我有一个名为ec2 instances的表,用于显示从文件a配置和awsAccountId中的两个位置解码的数据。如果我var_dumpcfi->awsAccountId,然后它找到相应的值,我可以解码保存并显示配置项,但不能显示ID

<?php 
function from_camel_case($input)
{
    preg_match_all('!([A-Z][A-Z0-9]*(?=$|[A-Z][a-z0-9])|[A-Za-z][a-z0-9]+)!', $input, $matches);
    $ret = $matches[0];
    foreach ($ret as &$match)
    {
        $match = $match == strtoupper($match) ? strtolower($match) : lcfirst($match);
    }
    return implode('_', $ret);
}
$resource_types = array();
$resource_types['AWS::EC2::Instance'] = 'EC2Instance';
$resource_types['AWS::EC2::NetworkInterface'] = 'EC2NetworkInterface';
$resource_types['AWS::EC2::VPC'] = 'VPC';
$resource_types['AWS::EC2::Volume'] = 'Volume';
$resource_types['AWS::EC2::SecurityGroup'] = 'EC2SecurityGroup';
$resource_types['AWS::EC2::Subnet'] = 'Subnet';
$resource_types['AWS::EC2::RouteTable'] = 'RouteTable';
$resource_types['AWS::EC2::EIP'] = 'EIP';
$resource_types['AWS::EC2::NetworkAcl'] = 'NetworkAcl';
$resource_types['AWS::EC2::InternetGateway'] = 'InternetGateway';


$accounts = DB::table('aws_account')->get();
$account_id = array($accounts);
$account_id_exists = array_add($account_id, 'key', 'value');     




foreach(glob('../app/views/*.json') as $filename)
{
    //echo $filename;
    $data = file_get_contents($filename);

    if($data!=null)

    {


            $decoded=json_decode($data,true);  


            if(isset($decoded["Message"])) 
            { 
            //echo "found message<br>";
                $message= json_decode($decoded["Message"]);
if(isset($message->configurationItem))
{
//  echo"found cfi<br>";    
            $insert_array = array();
                $cfi = $message->configurationItem;
                switch ($cfi->configurationItemStatus)
                {

                    case "ResourceDiscovered":
                //echo"found Resource Discovered<br>";  
                        if (array_key_exists($cfi->resourceType,$resource_types))

                        {

                            //var_dump($cfi->resourceType);
                                var_dump($cfi->resourceType);
                            $resource = new $resource_types[$cfi->resourceType];

                            foreach ($cfi->configuration as $key => $value)
                            {
                                if (in_array($key,$resource->fields))
                                {
                                    $insert_array[from_camel_case($key)] = $value;
                                }
                            }





                        $resource->populate($insert_array); 
                        if (!$resource->checkExists())
                            {
                                $resource->save();



                                foreach ($cfi->awsAccountId as $key => $value)
                            {
                                if (in_array($key,$resource->fields))
                                {
                                    $insert_array[from_camel_case($key)] = $value;
                                }
                            }





                        $resource->populate($insert_array); 
                        if (!$resource->checkExists())
                            {

                    $resource->save();