如何在我的编辑页面中检索信息

时间:2019-03-24 16:51:04

标签: php laravel vuejs2

我想检索文章版本的信息,但遇到错误
我的控制器

   public function show($id){
   return new PostResource(post::where('id',$id)->findOrFail($id));
    }

myedit.vue

    export default {
        data() {
            return {
                form: new Form({
                    id: '',
                    title: '',
                })
            }
        },

        methods:{
            updateItem() {
                this.form.put('/api/orders/posts/' + this.form.id) 
            ....
        },
       created(){
axios.get(`/api/orders/posts/${id}`).then(({data}) => this.form.fill(data));
        }
    }

我遇到此错误

[Vue warn]: Error in created hook: "ReferenceError: id is not defined"

found in

---> <UpdatePage> at resources/js/components/user/orders/post/Updatepage.vue
       <Root> app.js:112186:15
ReferenceError: "id is not defined"

2 个答案:

答案 0 :(得分:0)

我认为您应该尝试替换该行

axios.get(`/api/orders/posts/${id}`).then(({data}) => this.form.fill(data));

那样

axios.get(`/api/orders/posts/${this.$router.params.id}`).then(({data}) => this.form.fill(data));

它将寻找一个id路由参数(如果设置的名称不是id,则必须更改该参数的名称。我也将从mounted而不是createdmounted之前已运行,将避免看到空白表格)。

此外,您可以在控制器中编写更简单的代码形式:

public function show($id){
   return new PostResource(post::findOrFail($id));
}

甚至

public function show(post $post){
   return new PostResource($post);
}

如果设置正确的配置。

让我知道它是否对您有帮助:)

答案 1 :(得分:0)

尝试

axios.get(`/api/orders/posts/${this.$router.params.id}`).then(({data}) => this.form.fill(data.data));