Ошибка в Laravel vue inertia при создании поиска с разбивкой на страницы

Я новичок в использовании Laravel 8 с vuejs и inertiajs. Я пытаюсь сделать таблицу поиска нумерации страниц. Я следую руководствам, чтобы добиться этого, но у меня есть ошибка.

Вот мой связанный тип ввода из vue:

<input type="text" name="table_search" class="form-control float-right" placeholder="Search" v-model="term" @keyup="search">

Вот весь мой сценарий из vue:

<script>
    import AppLayout from '@/Layouts/AppLayout'
    import Paginator from "@/Components/Paginator";

    export default {
        data() {
          return {
            term: ''
          }
        },

        props: {
          members:Object,
          filters: Object
        },

        components: {
            AppLayout,
            Paginator,
            // JetPagination
        },

        methods: {
          search() {
            this.$inertia.replace(this.$route('member.index', {term: this.term}))
          }
        }


    }
</script>

Теперь в моем контроллере laravel вот что я следовал из учебника:

public function index(Request $request)
    {           
        return Inertia::render('Members/Member', [
            'members' => Member::with('user')->when($request->term, function($query, $term) {
                $query->where('firstname', 'LIKE', '%'.$term.'%');
            })->paginate()
        ]);
    }

У меня в консоли есть проблемы / предупреждение / ошибка:

[Vue warn]: Unhandled error during execution of native event handler 
Uncaught TypeError: this.$route is not a function

person John Carl Macasero    schedule 21.04.2021    source источник
comment
вы импортировали vue-router в свой app.js?   -  person Doggo    schedule 21.04.2021
comment
Я использую инерционный канал для своего роутера. Этого мало? Или как я могу использовать инерционный маршрут?   -  person John Carl Macasero    schedule 21.04.2021
comment
Я не знаю, как работает инерция, но когда вы вызываете this.$route, я думаю, что он вызывает vue-router, возможно, что-то вроде this.$inertia.route work, но попробуйте поместить синтаксис в свою конфигурацию.   -  person Doggo    schedule 21.04.2021


Ответы (1)


основываться на документации

вы должны сделать так:

export default {

  data() {
     term: '',
     routes: {{ json_encode($routes) }}
  }

  ...

  methods: {
    search() {
      this.$inertia.replace(this.routes('member.index', {term: this.term}))
    }
  }
}

Затем вы должны передать json_encode своим данным и получить к ним доступ.

person Doggo    schedule 21.04.2021