【问题标题】:Laravel and vue routerLaravel 和 vue 路由器
【发布时间】:2020-12-25 15:04:26
【问题描述】:

我是使用 Vue 作为前端的新手,而 Laravel 有一个后端。

我有 2 个相关模型,即用户模型和帖子模型。 用户可以有多个帖子,一个帖子属于一个用户。

我可以检索帖子,但我想点击用户页面上的用户并获取相关用户的帖子列表。

在Users vue中使用axios获取相关的User Posts列表如下

这是我用来打开帖子页面的链接。

<v-btn @click="$router.push({ name:'posts.list', params:{ id:item.id } })" 
       class="ma-0" 
       outlined 
       fab 
       small 
       color="success" 
       title="View Posts">
    <v-icon>mdi-tray-full</v-icon>
</v-btn>
axios.get('/admin/posts/' + self.propUserId, { params: params })
    .then(function(response) { 
        self.items = response.data.data.data; 
        self.totalItems = response.data.total; 
        self.pagination.totalItems = response.data.total; 
        (cb || Function)(); 
    });

我正在尝试通过 self.propUserId 将用户 ID 传递给路由器 js

path: '/:id',
name: 'posts.list',
component: require('./posts/components/PostLists'),
props: (route) => ({propUserId: route.params.id}),

我在web路由器里面有下面的路由器

Route::prefix('admin')
    ->namespace('Admin')
    ->middleware(['auth'])
    ->group(function() { 
        Route::resource('posts/{id}','PostController');
        // .....
    });

但是,我在没有应用条件的情况下获取所有帖子。我只想要属于单击的用户的所有帖子。帖子表中与用户表相关的外部列是 user_id。

【问题讨论】:

  • 我们可以看看你的控制器代码吗?

标签: laravel vue.js eloquent


【解决方案1】:

您是否正确设置了 Post-Model 的反比关系?

应该是这样的:

// Post.php
public function user()
{
    return $this->belongsTo(User::class);
}

【讨论】:

  • 是的,我做到了。 // Post.php public function user() { return $this->belongsTo(User::class,'user_id'); }
猜你喜欢
  • 2017-03-28
  • 2021-02-08
  • 2020-07-28
  • 2018-11-30
  • 2019-03-02
  • 2017-12-16
  • 2018-02-13
  • 2019-11-04
  • 1970-01-01
相关资源
最近更新 更多