Я экспериментировал со структурой шаблонов лезвий, но начинаю предполагать, что мой метод - не лучшая практика. Так что я хотел бы сказать вам об этом, ребята. У меня есть главный шаблон, который содержит строку меню, боковую панель, нижний колонтитул и раздел для контента:
<div class="wrapper ">
@include('layouts.sidebars')
<div class="main-panel">
<div class="main-content">
@include('layouts.navbars')
@yield('content')
@include('layouts.footers')
</div>
</div>
</div>
На моей странице я расширяю главный макет и помещаю остальное в раздел содержимого. Все идет нормально. Я бы хотел, чтобы сама моя страница состояла из нескольких разделов, таких как список заказов, список просмотренных элементов, ... так что в основном ряд полезных блоков, которые можно обновлять независимо, не обновляя всю страницу.
Прямо сейчас я использовал ajax для обработки всех обновлений, поэтому на моей странице есть
<div id="orders"></div>
<div id="viewed-items"></div>
...
, которые заполняются в document.ready () с помощью этой функции:
$.fn.loadOrders = function(){
$.ajax({
url: '/orders/{{ $user->id }}',
type: 'post',
data: {
_token: "{{ csrf_token() }}",
},
success: function(data){
if(data.success == true) {
$("#orders").html(data.html);
}
}
});
}
Каждый раз, когда пользователь просматривает другой элемент, я просто снова запускаю эту функцию, чтобы перезагрузить указанный c div. Эта функция ajax получает необработанный html контент из представления и загружает его в правый div.
Я не очень доволен этим, потому что у меня такое чувство, что должен быть более чистый способ чтобы выполнить sh это и добавить структуру на эту страницу.
Я читал, что laravel имеет метод renderSections (), который позволяет вам перезагрузить определенный раздел c. Поскольку кажется, что этот метод был бы ответом на мой вопрос, я начал думать о разделении моей страницы на разные разделы, но это меня запутало.
При расширении макета вы в основном говорите: возьмите эту страницу и поместите это в том разделе главного макета, я понял. Но в этом случае, я думаю, я хочу сказать: возьмите эту страницу и «наполните» ее разделом для заказов, разделом для просмотренных товаров ... Так что в основном наоборот.
Логичный выбор импортирует все отдельные представления, поэтому моя страница выглядит так:
@extends('master');
@include('orders');
@include('viewed-items');
Очевидно, это работает, но также возвращает меня к root этого вопроса. Есть ли лучший способ перезагрузить эти блоки c вместо использования ajax для вставки содержимого представления в div? Я думал, что метод renderSections () будет решением, но поскольку я просто импортирую эти блоки, у меня действительно нет разделов? Заранее спасибо, я очень надеюсь, что кто-то может указать мне правильное направление.