Не могу сохранить файл хранилища в запросах Laravel и Axios, всегда получаю ошибку «Вызов функции-члена store () on string», - PullRequest
0 голосов
/ 06 июля 2019

Я использую Laravel API и Vue.js для своего проекта. Я могу сохранить изображение в открытом доступе, но теперь я хочу сохранить файлы. Однако, когда я вызываю store, выдается ошибка «Вызов функции-члена store () для строки». Я изменил значение файловой системы по умолчанию как публичное, но результат тот же.

Запрос Axios

<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)
                    })
            }

Контроллер

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);
}

Каждый раз, когда выдается сообщение {сообщение: «Вызов функции-члена store () on string»,…}.

...