Thursday, March 2, 2017

Retrieve checked values using vue js and Laravel

Hi i am new to Vue js & Laravel Spark. I want to store checkbox values in my Database and retrieve the selected values. But i am struggling to get checked values from Database after refreshing the page. PLEASE help me

My Vue Js code below

Vue.component('update-company-profile', { props: ['user'],

 data() {
     return {

         form: new SparkForm({
             name: '',
             checkedNames: [
              {
                  "name": 'Business',
                  "id": 1
              },
              {
                  "name": 'Business1',
                  "id": 2
              },

              {
                  "name": 'Business2',
                  "id": 3
              }, 
            ],
             selected: [],
         })
     };
 },

created() {
    this.getUserSetting();

  },

     mounted() {
          this.form.practise_name = this.user.name;
          this.form.selected = json_encode(this.user.selected);

    },

    methods: {

      getUserSetting() {
         this.$http.get('/api/user/setting')
             .then(response => {
              this.setting = response.data;
              this.updateSetting();
             });
     },

    updateSetting() {

      this.form.practise_name = this.setting.name;
      this.form.selected = this.setting.selected;

    },

    update() {
       Spark.put('api/settings/company-profile', this.form)

         }

 }

});

View Code Below:

<form class="form-horizontal" role="form">

            <div class="form-group" :class="{'has-error': form.errors.has('name')}">
                <label class="col-md-4 control-label">Practise Name</label>
                    <input type="text" class="form-control" name="name" v-model="form.name">

                    <div v-for="item in form.checkedNames">
                         <input name="item.name" type="checkbox" v-model="form.selected"> <label>@</label>
                    </div>

            <!-- Update Button -->
            <div class="form-group">
                <div class="col-md-offset-4 col-md-6">
                    <button type="submit" class="btn btn-primary"
                            @click.prevent="update"
                            :disabled="form.busy">

                        Update
                    </button>
                </div>
            </div>

Store Method in Controller:

public function store(Request $request){

  $selected_value = implode(",", $request->get('selected'));
  $userid = Auth::user()->id;

  if (User::find($userid)->settings) {
  //If User Id Present
  return $request->user()->settings()->update([
      'name' => $request->name,
      'selected' => $selected_value,
  ]);
  }

  else {
    // User Id Not Present
    return $request->user()->settings()->create([
    'name' => $request->name,
    'selected' => $selected_value,
    ]);
  }

}

Please advice me to store and retrieve the checked values.



via AS Jessica

Advertisement