Я хотел бы показать вложенный список в моем шаблоне клинка. Если я хочу быстро отобразить вложенный список, я должен сделать это рекурсивным. Я создал в своей функции шаблона с именем renderNode(). Но эта глобальная функция в моем шаблоне не является хорошей идеей и практикой. Я бы хотел его реорганизовать.Где перемещать функции из шаблона в Laravel
Вы знаете хорошую практику, как организовать мой код?
<?php
function renderNode($node) {
echo "<li class='dd-item dd3-item' data-id='$node->id'>";
echo "<div class='dd-handle dd3-handle'>Drag</div>
<div class='dd3-content'>
$node->name
<span class='pull-right categories-actions'>
<i class='fa fa-plus-square-o delete-category' title=''></i>
<i class='fa fa-cogs delete-category' title=''></i>
<i class='fa fa-trash-o delete-category' title=''></i>
</span>
</div>";
if ($node->children()->count() > 0) {
echo "<ol class='dd-list'>";
foreach($node->children as $child) renderNode($child);
echo "</ol>";
}
echo "</li>";
}
?>
<div id="content" class="col-lg-10 col-sm-11">
<div class="row">
<div class="col-lg-12">
<div>
<button id="add-new-category" class="btn btn- primary">@lang('categories.new_category')</button>
</div>
<div class="dd" id="nestable3">
<ol class="dd-list">
@if(isset($categories))
@foreach($categories as $category)
<?php renderNode($category); ?>
@endforeach
@endif
</ol>
</div>
</div><!--/col-->
</div><!--/row-->
Это хорошая практика, чтобы поместить HTML-код в методе от модели? –
Нет, это не приведет к разметке в файле клинка и тяжелой логике в модели. Функции используются только для вычисления чего-либо и возврата значения. Вы можете использовать инструкции if else, чтобы решить, что делать в зависимости от возвращаемого значения. Глядя на ваш код, вам вообще не нужна функция. Вы можете передать переменные pass в представление, используя View :: make() -> with(). Затем в лезвии используйте if, иначе, чтобы определить, что выводить. – Rafael
Хмм, я не знаю, как это можно сделать. Не могли бы вы показать полный пример? –