Цитата:
названием метода, названием переменных, кривыми ссылками.
Думал кривой код в смысле алгоритма или неоптимизации. Вообще я про запросы речь вел и чтобы быстрее понять суть, а не вникать во вспомогательный код, укоротил его для примера.
У меня с небольшими изменениями (заменил $str на ob_start и перенёс Arr::combine в foreach) он выглядит так
Код:
public static function anchors_roles($role_ids, $role_names)
{
$sep = ', ';
$role_ids = explode(',', $role_ids);
$role_names = explode(',', $role_names);
ob_start();
foreach (Arr::combine($role_ids, $role_names) as $id => $name)
{
$url = Route::url('backend',
array(
'controller' => 'user',
'action' => 'index',
'id' => $id
)
);
echo HTML::anchor($url, $name).$sep;
}
return rtrim(ob_get_clean(), $sep);
}
Думаю для примера это было бы лишним.
Чтобы не висел в памяти можно перенести во вьюху (здесь тоже больше всего, чем в примере)
Код:
<table class="table">
<?php foreach ($users as $user): ?>
<tr>
<td><?php echo $user->username ?></td>
<td><?php echo anchors_roles($user->role_ids, $user->role_names) ?></td>
</tr>
<?php endforeach ?>
</table>
<?php
function anchors_roles($role_ids, $role_names)
{
$sep = ', ';
$role_ids = explode(',', $role_ids);
$role_names = explode(',', $role_names);
ob_start();
foreach (Arr::combine($role_ids, $role_names) as $id => $name)
{
$url = Route::url('backend',
array(
'controller' => 'user',
'action' => 'index',
'id' => $id
)
);
echo HTML::anchor($url, $name).$sep;
}
return rtrim(ob_get_clean(), $sep);
}
Мне кажется так нагляднее, чем парсить в цикле и не очень представляю как это красиво сделать)
Пример 1 понял, попробую, спасибо.