2017-08-14 88 views
1

我想将我的php代码转换为laravel标准,我想将其添加到我的控制器并将其呈现给我的视图。这个PHP代码工作正常,它的功能是确定两点之间的距离。我只是想以最简单的方式将此php代码转换为laravel标准。任何人都知道如何做到这一点?提前致谢。这里是我的代码:laravel 4.2如何将我的php代码转换为laravel标准

<?php 
function getdistance($latrider,$lontrider,$latdriver,$londriver){ 
    $earthRadius=6371; 
    $latFrom=deg2rad($latrider); 
    $lonFrom=deg2rad($lontrider); 

    $latTo=deg2rad($latdriver); 
    $lonTo=deg2rad($londriver); 

    $latDelta=$latTo-$latFrom; 
    $lonDelta=$lonTo-$lonFrom; 

    $angle=2*asin(sqrt(pow(sin($latDelta/2),2)+ 
     cos($latFrom)*cos($latTo)*pow(sin($lonDelta/2),2))); 
    return $angle*$earthRadius; 
} 

$latrider=11.707389; 
$lontrider=122.37194309999995; 

$latdriver=11.7105254; 
$londriver=122.36308980000001; 

$distance=getDistance($latrider,$lontrider,$latdriver,$londriver); 
echo"distance between rider position and driver position is:".$distance."KM"; 
?> 

回答

1

在你的控制器中的代码应该是这样的:

<?php namespace App\Http\Controllers; 

use App; 

use Illuminate\Http\Request; 
use App\Http\Controllers\Controller; 

class YourController extends Controller { 

    private function getdistance($latrider,$lontrider,$latdriver,$londriver) { 
     $earthRadius=6371; 
     $latFrom=deg2rad($latrider); 
     $lonFrom=deg2rad($lontrider); 

     $latTo=deg2rad($latdriver); 
     $lonTo=deg2rad($londriver); 

     $latDelta=$latTo-$latFrom; 
     $lonDelta=$lonTo-$lonFrom; 

     $angle=2*asin(sqrt(pow(sin($latDelta/2),2)+ 
      cos($latFrom)*cos($latTo)*pow(sin($lonDelta/2),2))); 
     return $angle*$earthRadius; 
    } 

    public function index (Request $request) { 

     $latrider=11.707389; 
     $lontrider=122.37194309999995; 

     $latdriver=11.7105254; 
     $londriver=122.36308980000001; 

     $data = array( 
      'distance' => $this->getDistance($latrider,$lontrider,$latdriver,$londriver) 
     ); 

     return view('your-view')->with($data); 
    } 

} 

您还需要添加在App/HTTP/route.php相应的路线:

Route::get('/your-route', ['uses' => '[email protected]']); 
+1

感谢您的回应,这完美的作品! :) – NWcoding

+0

太棒了!验证答案,以便可以帮助其他人;)干杯! –