samedi 6 juillet 2019

Cant store file in laravel and axios request, always get error of "Call to a member function store() on string",

I am using laravel api and vuejs for my project .I am able to store image on public but now i want to store files but whenever i call store it gives error "Call to a member function store() on string" i changed filesystem default value as public but same result. This is what i have tried

this is my axios request

<script> 
    export default {
       props: ['data'],
       data() {
            return {
                form:{
                    task_id:this.data.id,
                    filename:'Select file',
                    file:'',
                    cover_letter: '',
                    amount: '',
                    pre_experience: '',
            }
        }
     },

        methods: {
            getFile()
            {
             let file = (this.form.file.length > 200) ? this.form.file : "";
             return file;
            },
           onFileChange(e) {
                let file = e.target.files [0];
                this.form.filename=file.name
                let reader = new FileReader();
                reader.onload = (file) => {
                    this.form.file = reader.result;
                }
                reader.readAsDataURL(file);
            },
            submit()
            {
            axios.post('api/bid',this.form, {
                    headers: {'Authorization': 'Bearer ' + localStorage.getItem('token')}
            })
            .then(res => {
                        console.log(res.data)
                    })
            }

and this is my controller

 public function store(Request $request)
    {
        $bid = new Bid();
        $bid->task_id=$request->task_id;
        $bid->amount = $request->amount;
        $bid->cover_letter = $request->cover_letter;
        $bid->work_experience = $request->pre_experience;
        $bid->user_id = auth()->user()->id;

        if ($request->has('file')) {
             $file = $request->get('file');
            $filename = time() . '.' . explode('/', explode(':', substr($file, 0, strpos($file, ';')))[1])[1];
            $file->store('files','public');
            $bid->file = $filename;
        }
        dd($bid);
        $bid->save();
        return response(new BidResource($bid), Response::HTTP_ACCEPTED);
    }

everytime it gives {message: "Call to a member function store() on string",…} error... Can anyone please help me out !!



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire