当前位置: 首页 > 知识库问答 >
问题:

来自两个laravel项目的API

汪晟睿
2023-03-14

我创建了两个laravel项目。一个用于后端连接数据库,第二个项目用于前端。然后我从projectone(后端项目)创建路由API,从数据库获取数据并传递到json。我希望projecttwo(前端)从api url获取数据。

我尝试以下代码:

我在第一个项目中的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>';
        } 

但是我得到500个内部服务器错误。

如何修复此问题?

共有3个答案

沈长恨
2023-03-14

未找到基表或视图表示未找到数据库

使用运行迁移

 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(); 

 }

此外,打开浏览器的开发人员控制台并打开网络选项卡。刷新您的页面,并在网络控制器中找到与您的路由匹配的内容。它将是红色的,因为你得到了错误。点击它,看看它说什么。如果你不明白,那就把你的回答贴在你的问题里

孙池暝
2023-03-14

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

在传递JSON解码的值之前,必须先获取内容

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

松旭
2023-03-14

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

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

 类似资料:
  • 我在Laravel的项目视图中显示图片时遇到问题。。我的应用程序中保存照片的目标路径是:public_path(/images),但最近我将该项目放在cpanel服务器上,为了从url中删除/public,我使用了一篇谷歌文章,并在public_html文件夹外创建了一个名为laravel的文件夹,其中我保存应用程序文件,而在public_html中,我只保存应用程序公用文件夹中的文件。在视图中,

  • 上下文:从单个项目创建多个可执行jar-多包gradle项目 问题:我指的是链接中提供的解决方案,这有助于在构建中生成jar 注意:即使我使包名称与java文件名相同,生成的jar也不会执行。 我还注意到所有jar生成的文件大小都是一样的。希望面临的问题很清楚 我的项目结构(说明目的): Gradle文件(下面的相关部分,根据上面的链接Rest):

  • 我正在为我的laravel项目测试使用自定义域名配置作为测试。地方的当我作为测试运行这个项目时。谷歌chrome的本地页面显示了laravel的主页。但是,当我转到任何其他路由时,它会显示内部服务器错误。有人能找到解决办法吗?

  • 我有两个代号为“一”的独立项目,它们都运行良好,现在我想将这两个项目合并为一个。我知道如何组合代码和类文件,但我想知道如何组合两个项目的文件,因为在一个文件,很难再次创建所有文件。请建议是否有任何方法我可以结合两个文件,或者我可以使用两个一个项目中的文件。e、 g。 项目1:名称:test1有主题。res文件和12个表格 项目2:名称:test2有主题。res文件和18表格 新项目:名称:Merg

  • 所以我有一个多项目设置,看起来像这样

  • 我有一个应用程序在Laravel与.env.local文件(a和我做了下一个docker-comment文件: 还有我的Dockerfile: 我希望克隆存储库,并在docker compose构建时在dockerfile中执行以下操作: 重命名.env.local. env 给存储文件夹权限。我有一个错误在这一行