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