我目前正在将一个应用程序从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.'"};
}