chelkaz
@chelkaz

Какие варианты логики сквозной информации в секции можете посоветовать?

Имеется боковая панель. Как в нее передавать информацию? Которая видна на любой странице. В ней например последний комментарий, или последнее объявление или еще что либо (из разных таблиц базы)
Каким образом лучше это сделать? На данный момент логика не понятна. Для отдельной страницы понятно, через роутер и контроллер. Но как реализовать для сквозного блока?
  • Вопрос задан
  • 214 просмотров
Решения вопроса 1
erniesto77
@erniesto77
oop, rb, py, php, js
могу предложить использовать так называемые composers. Создаем в папке app папку View/Composers, в папке Composers создаем класс/файл допустим назовем AddStatistic.php:
namespace App\View\Composers;

use App\Comment;
use App\Blog;
use Illuminate\View\View;

class AddStatistic
{
    public function compose(View $view)
    {
        $statistic = [
            'last_comments' => Comment::getLast(),
            'top_rated' => Blog::topRated(),
        ];
        $view->with('statistic', $statistic);
    }
}

затем лучше вынести блок со статистикой в отдельную вьюшку, допустим 'partials.statistic' , потом в Providers/AppServiceProvider.php добавить use App\View\Composers и в методе boot добавить composer во вьюшку блока со статистикой, который будет туда передавать $statistic:
namespace App\Providers;

use App\View\Composers;
use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        ...
        $this->app['view']->composer(['partials.statistic'], Composers\AddStatistic::class);
    }
    
    ...
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DJZT
@DJZT
Laravel - code for you
View composer. Почитай про него. Сделаешь как виджеты.
Упс... Не заметил, что уже ответили
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы