来自两个laravel项目的API

时间:2018-08-16 16:48:45

标签: php laravel api laravel-5

我创建了两个laravel项目。一个用于后端与数据库的连接,第二个项目用于前端。然后我从projectone(后端项目)创建路由API,从数据库中获取数据并传递给json。我想要projecttwo(frontend)从api网址获取数据。

我尝试以下代码:

我在第一个项目中的API路线:

Route::get('test',function(){
    $response=DB::table('student_tbl')->select('title')->get();
    return response()->json($response,200);
});

我的第二个项目:

$client = new \GuzzleHttp\Client();        
        // Create a request
        $request = $client->get('http://localhost/myfirstproject/public/api/test');
        // Get the actual response without headers
        $response = $request->getBody();
        $json_decode=json_decode($response,true);
        foreach ($json_decode as $key => $value) {
            echo $value['title'].'<br>';
        } 

Buti收到500个内部服务器错误。

该如何解决?

4 个答案:

答案 0 :(得分:0)

尝试此操作以从您的请求中获取内容。由于您在尝试从浏览器接收到API响应时,第二个项目似乎存在问题。

您必须先获得contents,然后再传递JSON decoding的值。

$response = $request->getBody()->getContents();

答案 1 :(得分:0)

未找到基表或视图意味着未找到数据库

使用以下命令运行迁移

 php artisan migrate 

如果在运行迁移时遇到其他错误,请尝试使用此命令

php artisan migrate:refresh

在尝试捕获中编写代码,如下所示:

try{

  $client = new \GuzzleHttp\Client();        
    // Create a request
    $request = $client->get('http://localhost/myfirstproject/public/api/test');
    // Get the actual response without headers
    $response = $request->getBody();
    $json_decode=json_decode($response,true);
    foreach ($json_decode as $key => $value) {
        echo $value['title'].'<br>';
    } 

 }catch(\Exception $e){

    \Log::error( $e->getMessage().' '. $e->getLine() .' '. $e->getFile());
    return $e->getMessage().' '. $e->getLine() .' '. $e->getFile(); 

 }

也是 打开浏览器的开发者控制台,然后打开“网络”标签。刷新页面,然后在网络控制器中找到与您的路由相匹配的内容。由于出现错误,它将变为红色。单击它,看看它说什么。如果您听不懂,只需在您的问题中粘贴该回复

答案 2 :(得分:0)

错误代码500基本上意味着您的代码有问题。尝试从.env转到您的应用程序调试模式(如果已经存在),那么就很好了。

然后尝试从浏览器中点击api,以检查是否正在按预期返回/返回响应。如果这样做,那么您的2ned项目出了点问题。尝试以相同的方式进行调试。

laravel错误将为您提供错误提示。

答案 3 :(得分:0)

https://github.com/laravel/framework/issues/19454#issuecomment-305955056

根据评论,您需要运行php artisan config:cache来保存项目的配置