Как мне показать компонент в лезвии? - PullRequest
1 голос
/ 16 мая 2019

Почему код моего приложения не работает в Laravel?Если я устанавливаю адрес /admin, то все работает и показывает шаблон admin.blade.php, а если я установил admin/one, он показывает admin.blade.php, но материал, который есть в приложении, не отображается

Это работает:

Route::get('/admin','AdminController@index')->middleware(['auth', 'auth.admin']);
<body>
it's work
<div id="app">
    it's working
    <router-view></router-view>
</div>
<script src="js/app.js">

</script>
</body>

, но это не так:

Route::get('/admin/one','AdminController@index')->middleware(['auth', 'auth.admin']);
<body>
it's work
<div id="app">
    it's not working
    <router-view></router-view>
</div>
<script src="js/app.js">

</script>
</body>

1 Ответ

1 голос
/ 16 мая 2019

Дело в том, что маршруты Laravel и Vue не совпадают. Vue маршруты вроде виртуальные. Они существуют и работают только внутри браузера. Vue используется для одностраничных приложений - он же SPA.

Чтобы это работало, вам нужно изменить маршрут администратора, чтобы он совпадал с чем-либо, начинающимся с "/ admin"

Итак, ваш маршрут должен быть таким:

Route::get('/admin/{param?}','AdminController@index')->where('param', '(.*)')->middleware(['auth', 'auth.admin']);

и он должен возвращать вид лезвия с вашим приложением vue. Ваше приложение Vue затем должно отобразить запрошенную страницу в зависимости от того, какой маршрут был запрошен. Для этого и был создан Vue-роутер. И все или ваши страницы администратора и макеты должны обрабатываться Vue. И в ваших ресурсах Vue / js / router / index.js (я полагаю, вы используете Laravel Mix)

export const routes = [
    {
        path: '/',
        component: MainLayoutComponent,
        redirect: { name: 'home' },
        children: [
            {
                path: 'home',
                name: 'home',
                component: AdminHome,
                meta: {
                    title: 'Main Page'
                },
            },
        ]
    }
];
const router = new Router({
    routes,
    base: '/admin', 
    mode: 'history',
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...