Laravel json回归404

时间:2018-01-25 05:47:04

标签: php json laravel

我尝试在下拉列表中获取用户地址列表,但我在网络上遇到404错误,当我通过网址测试它时返回404 Page Not Found

逻辑

  1. 用户可以拥有多个地址
  2. user_id表中的每个地址都有addresses列(我可以通过user_id从地址表中获取)
  3. 我需要什么?

    1-在下拉列表中选择用户

    2-在其他下拉列表中显示他/她的地址

    我的控制器:

    public function getAddressList($user_id)
    {
      $address = Address::where('user_id',$user_id)->get();
      return response()->json($address);
    }
    

    路线:

    Route::get('/getAddressList/{user_id}','OrderController@getAddressList');
    

    刀片:

    // Select boxes
    <div class="row bg-danger mb-20" style="padding: 7px;">
                          <div class="col-md-6">
                            {{ Form::label('user_id', 'Buyer') }}
                            <select name="user_id" class="form-control">
                                <option class="form-control" value="">Select user</option>
                                 @foreach($users as $user)
                                  <option value="{{ $user->id }}">{{ $user->name }}</option>
                                @endforeach
                            </select>
                          </div>
    
                          <div class="col-md-6">
                            {{ Form::label('address_id', 'Buyer Address') }}
                            <select name="address_id" class="form-control">
                                <option class="form-control" value="">Select Address</option>
                            </select>
                          </div>
                      </div>
    
    
    //Javascript codes
    <script type="text/javascript">
    $(document).ready(function() {
      $('select[name="user_id"]').on('change', function() {
        var userID = $(this).val();
        if(userID) {
          $.ajax({
              url: '{{ url('getAddressList') }}/'+encodeURI(userID),
              type: "GET",
              dataType: "json",
              success:function(data) {
              $('select[name="address_id"]').empty();
              $.each(data, function(key, value) {
                  $('select[name="address_id"]').append('<option class="form-control" value="'+ value['id'] +'">'+ value['address'] +'</option>');
                  });
              },
          });
        }else{
          $('select[name="address_id"]').empty();
        }
      });
    });
    </script>
    
    
    PS: if i visit: `http://domain.dev/getAddressList/1` i get 404 Page not fount as well as inspect network tab
    

1 个答案:

答案 0 :(得分:0)

您的路线定义

messages

必须放在群组定义下,并带有一些Route::get('/getAddressList/{user_id}','OrderController@getAddressList');

纠正路线定义位置可以解决您的问题。

关于注释,您可以将控制器方法签名恢复为

prefix