【问题标题】:Passing data from Vue.js request to Laravel 5.3 form将数据从 Vue.js 请求传递到 Laravel 5.3 表单
【发布时间】:2017-01-25 22:26:54
【问题描述】:

我有两个表:国家和城市。想法是在用户选择国家时显示第二个下拉列表,并用与所选国家对应的城市填充它。

不幸的是,我无法弄清楚如何将检索到的值传递给表单。

检索到的值低于 id 为 21 的国家/地区是挪威 :)

已选择 { "country": "21", "CountrySelected": true, "cities": { "6": "Oslo", "11": "Lillehammer" } }

// My app.js

const app = new Vue({


el: '#events',

  data: {
	  	country:'',
	  	CountrySelected: false,	
	  	cities:[], 	
  },

  methods: {

	  	WhenCountryHasBeenSelected: function(event) {
	  		this.getCities();
	  		this.CountrySelected= true;
	  	},

	  	getCities: function(){
	  		this.$http.get('api/cities/'+this.country).then(function (response) {
      this.cities = response.data;
      });
   }
  },

})
//My api.php routes

Route::get('/cities/{country_id}', function (Request $request, $country_id) {
		
$cities=App\City::where('country_id', $country_id)->get()->pluck('name','id');

return $cities;
});


//My blade file

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
        <div id="events">
            <div class="panel panel-default">
                <div class="panel-heading">Select cities by country</div>

                <div class="panel-body">


                    {!! Form::open() !!}


                    {!! Form::select('country', $countries, null,  ['v-model'=>'country', '@change'=>'WhenCountryHasBeenSelected' ,'class'=>'form-control']) !!}
                 
                    <div v-show="CountrySelected">
                    {!! Form::select('city',$cities, null, ['class'=>'form-control']) !!}
                    {!! Form::close() !!}

                   
                    Selected @{{ $data | json }}
                
                </div>
            </div>
        </div>
        </div>
    </div>
</div>
@endsection

【问题讨论】:

    标签: laravel-5 vue.js


    【解决方案1】:

    最终使用 Laravel 集合地图功能。 Mu路线现在是这样的

    Route::get('/cities/{country_id}', function (Request $request, $country_id) {
            $collection=App\City::where('country_id', $country_id)->get();
            $cities=$collection->map(function($city){
                return ['id' => $city->id, 'name' => $city->name];
                })->toArray();
    

    Laracast 论坛和 bashy 万岁 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 1970-01-01
      • 2020-05-31
      • 2015-11-18
      • 1970-01-01
      相关资源
      最近更新 更多