我创建了两个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个内部服务器错误。
该如何解决?
答案 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
来保存项目的配置