@ChertyakaNUB

Как получать каждый раз новые данные в шаблоне через контроллер?

Всем привет!

Есть контроллер, в котором прописан код для получения списка файлов из папки:
$path = public_path('images');
$files = File::files($path);
return view('show', ['files' => $files]);

Есть шаблон, в котором получаем список:
@foreach($files as $file)
...
@endforeach


Вопрос, как можно вызывать переменную $files с обновленными данными, чтобы получить последние данные, если допустим только что добавил файл в папку без перезагрузки страницы?

Ну например, есть кнопка в шаблоне которая добавляет файл в папку, как после добавления сразу обновить данные?
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
@ChertyakaNUB Автор вопроса
Вообщем сделал так:
Переменную files убрал из view и весь код перенес в отдельную функцию и сделал дополнительный роут для нее.
public function getFiles()
    {
        $path = public_path('images');
        $files = File::files($path);

        return $files;
    }

В шаблоне при событии на добавление, сделал на получение обновленных данных через get jQuery:
$.get( "{!! route('your_url') !!}", function( data ) {
                console.log(data);
});

Теперь данные всегда приходят обновленными.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@jazzus
Ajax?) Есть еще ахинея типа Livewire, но не рекомендую.
Ответ написан
@lavren
Правильно настроить Echo server и слушать необходимые события.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы