Пользователь пока ничего не рассказал о себе

Наибольший вклад в теги

Все теги (4)

Лучшие ответы пользователя

Все ответы (2)
  • Как передать данные в root template (inertia)?

    @arti39
    В Inertia.js, данные можно передать в root template (blade файл) с помощью двух переменных: page.props и page.asset.

    Переменная page.props содержит объект, который будет преобразован в JSON и передан внутрь JS-функции Inertia.merge. Эта функция обновляет существующие данные на странице с помощью переданных данных.

    Например, чтобы передать данные о пользователе в root template, можно выполнить следующий код в контроллере:

    public function index()
    {
        $user = Auth::user();
    
        return Inertia::render('Home', [
            'user' => $user
        ]);
    }

    Затем в blade-шаблоне можно использовать переданные данные следующим образом:

    <!DOCTYPE html>
    <html>
        <head>
            <!-- ... -->
        </head>
        <body>
            @inertia
    
            <script>
                // Объект пользователя, переданный из контроллера
                const user = @json($page.props.user);
            </script>
        </body>
    </html>

    Переменная page.asset используется для передачи пути к JS-файлу, который должен быть загружен на страницу. Этот путь должен быть относительным пути к файлу из директории public, например:

    return Inertia::render('Home', [
        'user' => $user,
        'asset' => 'js/app.js'
    ]);
    Ответ написан
    Комментировать