Доступ ко всем маршрутам Laravel в шаблоне Vue

#javascript #laravel #vue.js #routes

#javascript #laravel #vue.js #маршруты

Вопрос:

Я в основном пытаюсь создать какую-то динамическую таблицу, используя Vue в Laravel. Я успешно создал таблицу и получил данные с помощью $.getJSON метода jquery. Я действительно хочу иметь ссылку внутри таблицы, которая указывала бы на URL-адрес, используя route() метод Laravel, поскольку у меня есть много разных маршрутов, которые я хотел бы использовать.

Примером в этом случае является то, что таблица содержит список всех пользователей, и я хотел бы иметь ссылку view user для каждого пользователя. Но я не могу получить доступ к Laravel route() внутри компонента Vue.

Чтобы сделать это очень коротким вопросом: есть ли какой-либо способ получить доступ ко всем маршрутам, которые есть в Laravel, помимо добавления одного маршрута в поле атрибутов в шаблоне, например:

 <user-table-component dataRoute="{{ route('datatable.users') }}">
</user-table-component>
  

Я открыт для предложений относительно того, как я могу исправить это другим способом.
Кроме того, вот шаблон:

 <template>

    <table>
        <thead>
            <tr>
                <td v-for="header in json.headers" :key="header">{{ header }}</td>
            </tr>
        </thead>

        <tbody>
            <tr v-for="user in json.rows.data" :key="user">
                <td><a href="THIS WOULD BE AN VIEW USER LINK">{{ user.name }}</a></td>
                <td>{{ user.email }}</td>
                <td>{{ user.created_at }}</td>
            </tr>
        </tbody>
    </table>

</template>



<script>
    module.exports = {
        name: 'user-table-component',
        props: ['dataroute'],

        data: function(){
            return {
                json: []
            }
        },

        // This is auto-run when the Vue app is booted up
        mounted() {

            // Closure to accept component in the callback below
            var self = this;
            $.getJSON(this.dataroute, function(json) {
                self.json = json;
            });
        }
    }
</script>
  

Ответ №1:

Используйте это

 https://github.com/tighten/ziggy
  

Затем в Javascript вы можете использовать route('route.name')

Комментарии:

1. Спасибо! Не знаю, почему я не смог найти это в первую очередь. Еще раз спасибо!