2016-03-21 6 views
1

есть ли что-то не так с моим следующим кодом? Caz всегда показывает: 500 (ошибка сервера Внутренняя) Я не знаю, почему и надеюсь, что кто-то может помочь, спасибо ...laravel с ионным: 500 (внутренняя ошибка сервера)

Я искал в течение дня, но без какого-либо решения. Я что-то упускаю? И я использую ионный, чтобы сделать мобильное приложение.

// контроллер

public function touristsData(){//get 
    $postdata = file_get_contents("php://input"); 
    $request = json_decode($postdata,true); 
    $location = $request['location']; 
    if(empty($location) != true){ 
      $tourists = User::where('block','0') 
         ->where('location', $location) 
         ->orderBy('updated_at', 'desc') 
         ->get();     
    }else{ 
      $tourists = User::where('block','0') 
         ->orderBy('updated_at', 'desc') 
         ->get();   
    } 
    return View::make('frontend.data.touristsData',array('tourists'=>$tourists)); 
} 

//app.js(angularjs)

 $scope.submitForm = function(){ 
    if($scope.filter.want == 'company'){ 
      $http({ 
       method : 'POST', 
       url  : './touristsData', 
       beforeSend: function (xhr) { 
          var token = document.getElementById('token').getAttribute('content');        
          if (token) { 
           return xhr.setRequestHeader('X-CSRF-TOKEN', token); 
          } 
       },     
       data : { 
        'location': $scope.filter.location 
       }, 
       headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
      }) 
      .success(function(data){ 
       $scope.tourists = data; 
      });  
      $scope.modal.hide();     
    } 
    } 

Большое спасибо!

ответ

1

Какая версия Laravel вы используете? Если вы включите отладку, то каково сообщение, данное для ошибки 500?

Мое предположение заключается в том, что индекс «местоположения» вашей переменной запроса не установлен. Laravel обеспечивает намного лучший способ retrieving the request input, который уже учитывает индексы, которые могут быть или не быть установлены, поэтому вы должны использовать это.

Во всяком случае, если вы находитесь на Laravel 5+, сделать это в вашем контроллере:

public function touristsData() 
{ 
    $query = User::where('block','0'); 

    if (request()->has('location')) { 
     $query->where('location', request('location')); 
    } 

    $tourists = $query->orderBy('updated_at', 'desc')->get(); 

    return view('frontend.data.touristsData', compact('tourists')); 
} 

И то же самое, но для Laravel 4.2:

public function touristsData() 
{ 
    $query = User::where('block','0'); 

    if (Input::has('location')) { 
     $query->where('location', Input::get('location')); 
    } 

    $tourists = $query->orderBy('updated_at', 'desc')->get(); 

    return View::make('frontend.data.touristsData', compact('tourists')); 
} 
+0

Не публикуйте новый вопрос - отредактируйте это. –

+0

Извините за ответ поздно. и почему вы используете компактные («туристы»)? – franklee

+0

Это то же самое, что вызов 'array ('tourist' => $ tourist)', чуть короче. http://php.net/manual/en/function.compact.php –

Смежные вопросы