我使用VueJ获取状态时遇到了问题。
getStates(){
axios.get("/api/employees/"+ this.form.country_id + "/states")
.then(res => {
this.states = res.data
}).catch(error => {
console.error(error.response.data)
})
}
这个api.php。
<?php
use App\Http\Controllers\Api\EmployeeDataController;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
Route::get('/employees/countries', [EmployeeDataController::class, 'countries']);
Route::get('/employees/{country}/states', [EmployeeDataController::class, 'states']);
Route::get('/employees/departments', [EmployeeDataController::class, 'departments']);
Route::get('/employees/{state}/cities', [EmployeeDataController::class, 'cities']);
这是EmployeeDataController包含:
public function states(Country $country)
{
return response()->json($country->states);
}
这是国家模式:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Country extends Model
{
use HasFactory;
protected $fillable = ['country_code', 'name'];
public function states()
{
return $this->hasMany(States::class);
}
}
这是我存储数据的create.vue刀片。
<div class="row mb-3">
<label for="country" class="col-md-4 col-form-label text-md-end">Country</label>
<div class="col-md-6">
<select v-model="form.country_id" @change="getStates()" name="country" class="form-control" aria-label="Default select example">
<option v-for="country in countries" :key="country.id" :value="country.id">{{country.name}}</option>
</select>
</div>
</div>
这创建了一个表单,当我点击select country(选择国家)时,该表单必须自动填写我想要获取的国家数据。
在此处输入图像描述
但我面临500个内部服务器错误
在此处输入图像描述
我希望解释一下我的问题。