【问题标题】:How to show array data form controller in blade file (html table)? Laravel如何在刀片文件(html 表)中显示数组数据表单控制器?拉拉维尔
【发布时间】:2021-05-15 15:19:56
【问题描述】:

由于我是 Laravel 的新手,所以我遇到了一个非常复杂的问题。

我有这样的控制器文件 ApiHandlerController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
use GuzzleHttp\Client;

class ApiHandlerController extends Controller
{
//
public function index()
{
    $client = new Client([
        // Base URI is used with relative requests
        'base_uri' => 'http://jsonplaceholder.typicode.com/todos',
    ]);

    $response = $client->request('GET', '/todos');

    //get status code using $response->getStatusCode();

    $body = $response->getBody();
    $arr_body = json_decode($body);
    return view('myview', $arr_body);
}
}
?>

myview.blade.php 作为视图文件:

 <!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Todo</title>
        <link rel="shortcut icon" type="image/x-icon" href="icon.ico">
        <meta name="description" content="HTML, PHP, JSON, REST API">
        <style>table, th, td {border: 1px solid black;}</style>
    </head>
<body>

    <table style="width:100%"; class="data-table">
        <tr>
            <th>User ID:</th>
            <th>ID:</th>
            <th>Title:</th>
            <th>Completed</th>
        </tr>
        <?php foreach ($arr_body as $value)  {    ?>
            <tr>
                <td><?php echo $value -> userId ?> </td>
                <td><?php echo $value -> id ?> </td>
                <td><?php echo $value -> title ?> </td>
                <td><?php echo $value -> completed ?> </td>
            </tr>
        <?php  } ?>
   </table>

web.php 文件与路由:

Route::get('myview', function () {
    return view('myview');
});

我的问题是:

如何在这个刀片(视图)文件中显示来自 jsonplaceholder.typicode.com 的待办事项结果? 目前,这是不可能的,每次我尝试都是一个错误:

错误异常 未定义变量:arr_body(查看:C:\xampp\htdocs\TodoList\resources\views\myview.blade.php) 提前谢谢你们!

【问题讨论】:

  • 你的路由没有使用控制器(顺便说一句,它看起来不像一个“有效”的 Laravel 控制器),它只返回一个视图。
  • @brombeer 好吧,当我们谈论路线时,首先有什么解决方案?
  • The Default Route Files 有关于如何在路由中使用控制器的示例,基本上类似于Route::get('/user', [UserController::class, 'index']);或者,您可以在路由中的function() 中使用您的控制器代码

标签: php laravel model-view-controller


【解决方案1】:

在刀片中显示数组类型数据...

首先编辑你的控制器代码。

发件人:

return view('myview', $arr_body);

收件人:

return view('myview')->with('arr_body', $arr_body);

以下是核心 php 语法。

<td><?php echo $value['userId'] ?> </td>

Laravel 语法

<td>{{$value['userId']}}</td>

希望这会有用。

【讨论】:

  • 虽然没有数据,但无法解决错误
  • 检查你的 $data 变量,它没有数据。将其添加到控制器中。
  • @RajenTrivedi 我刚刚编辑了我的问题,但我仍然有一个错误:未定义的变量:arr_body
  • @RajenTrivedi 好的,Rajen,你救了我的命!非常感谢!
猜你喜欢
  • 2019-04-24
  • 1970-01-01
  • 2020-08-03
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-05-26
  • 2018-10-01
  • 2021-07-05
相关资源
最近更新 更多