i work with an interface with backend laravel and frontend vuejs2 i used a component to register a new record in my database it work perfectly with the input type text but with input type file i don't know how to get the path and store it using function store of laravel
component vuejs
template
<input type="file" @change="processFile($event)" id='image' v-model="article.image" >
</div>
<div class="modal-footer">
<button type="button" @click="CreateArticle">Enregistrer</button>
</div>
vue Script
<script>
export default {
data(){
return {
articles:[],
article:{
image:'',
},
}
},
methods:{
CreateArticle:function(){
axios.post(window.Laravel.url+'/addArticle',this.article)
.then( response => {
if(response.data.etat){
this.article.id=response.data.id;
this.articles.unshift(this.article);
this.article={
id:0,
image:'',
}
}
})
.catch(error => {
});
},
processFile(event) {
this.someData = event.target.files[0],
},
},
}
</script>
Controller function
public function addArticle(Request $request){
$art=new Article();
if($request->hasFile('image')){
$art->img=$request->image->store('images');
}
$art->save();
return Response()->json(['etat'=>true,'id'=>$art->id]);
}
route:
Route::post('/addArticle','CategorieController@addArticle');
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire