Laravel 数据未显示

Laravel data not being displayed

我正在尝试从我的 mongodb 数据库中的本地 collection 读取数据。 collection post 的数据库名称直觉名称。 Post控制器内的代码:

<?php
use Illuminate\Http\Request;
use App\Models\Post;
class PostController extends Controller{

public function home() {
    $posts = Post::with(['user'])->get();

    return view('home', ['posts' => $posts->toArray()]);
}}

里面的代码Post:

class Post extends Model{
use HasFactory;

protected $fillable = [
'STATUS',

'DDC_CODE',

'TRADE_NAME',

'SCIENTIFIC_CODE',

'SCIENTIFIC_NAME',

'INGREDIENT_STRENGTH',

'DOSAGE_FORM_PACKAGE',

'ROUTE_OF_ADMIN',
'PACKAGE_PRICE',

'GRANULAR_UNIT',

'MANUFACTURER',

'REGISTERED_OWNER',

'UPDATED_DATE',

'SOURCE'
];}

以上均为table中栏目的标题。 下一个 home.blade.php:

<!DOCTPE html>
<html>
<head>
<title>View Records</title>
</head>
<body>
<table border = "1">
<tr>
<td>Id</td>
<td>STATUS</td>
<td>DDC_CODE</td>
<td>TRADE_NAME</td>
<td>SCIENTIFIC_CODE</td>
<td>SCIENTIFIC_NAME</td>
<td>SCIENTIFIC_CODE</td>
<td>INGREDIENT_STRENGTH</td>
<td>DOSAGE_FORM_PACKAGE</td>
<td>ROUTE_OF_ADMIN</td>
<td>PACKAGE_PRICE</td>
<td>GRANULAR_UNIT</td>
<td>MANUFACTURER</td>
<td>UPDATED_DATE</td>
<td>SOURCE</td>

</tr>
@foreach ($posts as $post)
<tr>
<td>{{ $post->_id }}</td>
<td>{{ $post->STATUS }}</td>
<td>{{ $post->DDC_CODE }}</td>
<td>{{ $post->TRADE_NAME }}</td>
<td>{{ $post->SCIENTIFIC_CODE }}</td>
<td>{{ $post->SCIENTIFIC_NAME }}</td>
<td>{{ $post->INGREDIENT_STRENGTH }}</td>
<td>{{ $post->DOSAGE_FORM_PACKAGE }}</td>
<td>{{ $post->ROUTE_OF_ADMIN }}</td>
<td>{{ $post->PACKAGE_PRICE }}</td>
<td>{{ $post->GRANULAR_UNIT }}</td>
<td>{{ $post->MANUFACTURER }}</td>
<td>{{ $post->REGISTERED_OWNER }}</td>
<td>{{ $post->UPDATED_DATE }}</td>
<td>{{ $post->SOURCE }}</td>
</tr>
@endforeach
</table>
</body>
</html>
路由handler如下

Route::get('view','App\Http\Controllers\PostController@home');

所有这一切似乎都很好,但是当我加载应用程序时,除了列标题我什么也看不到,我不确定我错过了什么,我相信它不起作用,因为 PostController 中的查询是不正确,需要更改它,因为它取自另一个项目。欢迎任何帮助和建议。

您正在以数组形式发送数据,但您试图在 blade 视图文件中将它们作为 object 获取。

而不是像这样获取数据:

$post->STATUS

试试这样使用:

$post['STATUS']

不要使用->toArray()

如下传递数据 & 变量将被显示

return view('home', ['posts' => $posts)]);

而不是

Post::with(['user'])->get();

使用

Post::with(['user'])->all();

受制于 user 关系已在您的 Post 模型中正确定义