Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

kankai's avatar

Pass json to vue instead of __ob__ observer

Hi all,

Currently i'm learning to use laravel vapor but i'm new to vue. What i'm trying to do is upload image to aws S3 and now i'm trying to change my view after uploaded image. Previously i'm using ajax return json to views. But in same method the return return is become ob observer, and i try few ways to convert it back json and still failed.

vue

Vapor.store(document.getElementById('fileItem').files[0], {
                progress: progress => {
                    this.uploadProgress = Math.round(progress * 100);
                }
            }).then(response => {
                axios.post('../../../wallet/imgupload', {
                    uuid: response.uuid,
                    key: response.key,
                    bucket: response.bucket,
                    remark: document.getElementById('remark').value,
                    category: document.getElementById('category').value,
                    uid: document.getElementById('uid').value,
                    name: document.getElementById('fileItem').files[0].name,
                    extension: document.getElementById('fileItem').files[0].type,
                    content_type: document.getElementById('fileItem').files[0].type,  
                }).then (response => {
                    var test = JSON.stringify(response.data)
                    console.log(test)
                    var abc = JSON.parse(response)
                    console.log(abc)
                }).catch (response => {
                    console.log(response)
                });
            });

in my controller

 Storage::copy($request->input('key'), str_replace('tmp/','', $request->input('key')));

        
        imgData::insert([
            'uid' => $request->input('uid'),
            'category' => $request->input('category'),
            'path' => $request->input('key'),
            'remarks' => $request->input('remark'),
            'status' => 0,
            'uploaded_by' => \Auth::user()->name,
            'uploaded_at' => now(),
        ]);


        $imgData = imgData::where('uid', $uid)->where('status', 0)->get();

        $view = view('wallet.apps', compact('imgData'));

        return response()->json([
            'return' => 'view',
            'viewdata' => $view,
        ]);
0 likes
1 reply
kankai's avatar
kankai
OP
Best Answer
Level 3

There was my mistake in my controller, i just change from

'viewdata' => $view,

to

'viewdata' => $view->render(),

everything solved. Thanks

Please or to participate in this conversation.