В настоящее время я конвертирую приложение из ColdFusion в PHP, и у меня возник вопрос о разделе кода. У меня есть таблица, давайте назовем ее «table1», которая имеет такую структуру:
table1
-------------------
id
...
size36
size36title
size37
size37title
...
size80
size80title
Затем у меня есть вставка, основанная на POST в действии CFM, которая выглядит следующим образом:
<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>
Я не понимаю, что делает приведенный ниже синтаксис или чем его заменить в моем foreach
цикл в PHP.
‘# gettable1 [ «размер # я #»] [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.'"};
}
Задача ещё не решена.
Других решений пока нет …