ColdFusion到PHP的转换:如何翻译#gettable1 [“size#i#title”] [gettable1.currentrow]#

时间:2016-08-22 06:25:53

标签: php coldfusion coldfusion-9

我目前正在将一个应用程序从ColdFusion转换为PHP,我遇到了一个关于代码部分的问题。我有一个表,我们称之为“table1”,它具有以下结构:

table1
-------------------

id 
... 
size36 
size36title 
size37 
size37title 
... 
size80 
size80title

然后我在CFM动作中有一个基于POST的插入,如下所示:

<cfquery name="gettable1" datasource="#application.datasource#">
select * from table1 where id = '#modelId#'
</cfquery>

<cfloop query="gettable1">

    insert into table1( name, rank  <cfloop from="38" to="80" index="i" step="2">, size#i#, size#i#title</cfloop>)
    values(
    '#gettable1.name#', 
    '#gettable1.rank#', 
    <cfloop from="38" to="80" index="i" step="2">, 
        '#gettable1["size#i#"][gettable1.currentrow]#', 
        '#gettable1["size#i#title"][gettable1.currentrow]#'
    </cfloop>)

</cfloop>

我不明白下面的语法是什么,或者我应该用PHP中的foreach循环替换它。

  

'#gettable1 [ “尺寸#I#”] [gettable1.currentrow]#'

到目前为止,我做了foreach这样的事情:

$gettable1 = \DB::table('table1')->where('id','=',getmodel->modelId);
foreach($gettable1 as $item){
    $ins = 'insert into table1( name, rank  ';
    for($i=38;$i<=80;$i=$i+2)
    {
        $ins=$ins.', size'.$i.', size'.$i.'title';
    }

    $ins=$ins.') values('.$item[0]->name.', '.$gettable1[0]->rank','; 
    for($i=38;$i<=80;$i=$i+2)
    {
        $ins=$ins.','...// here lies the problem
    }
    $ins=$ins.');';

}

通常我会使用$item对其进行翻译,但有些事情告诉我应该使用$gettable1[...][gettable1->currentrow]来解决这个问题?任何人都可以帮我理解如何解决这个问题吗?

修改

在上面的代码中这是等效的吗?

ColdFusion:  <cfloop....
             ...
             #gettable1["size#i#"][gettable1.currentrow]#

PHP/Laravel: $currentro = 0;
             foreach($gettable1 as $item)
             {
                ... 
                $gettable1["size'.$i.'"][$currentrow];
                $currentrrow++;
             }

             foreach($gettable1 as $item)
             {
                ... 
                $item->{"size'.$i.'"};
             }

0 个答案:

没有答案