gpt4 book ai didi

PHP Laravel 返回查看 null 变量

转载 作者:行者123 更新时间:2023-12-02 21:04:15 27 4
gpt4 key购买 nike

我有方法获取单词形式的搜索栏并在数据库中查询,然后返回 View

但它显示空表,尽管我检查空变量

这是 Controller 代码

<?php

public function getSearch($title) {
$words = Word::where('title', $title)->first();
if (empty($words)) {

abort(404);
}
return view('dict.index', compact('words'));

}

这里是查看代码

<?php

foreach ($words as $row) {
echo '<tr>';
echo '<td>' . $row['title'] . '</td>';
echo '<td>' . $row['meaning'] . '</td>';
echo '<td>';
for ($i = 0; $i < $row['rate']; $i++) {
echo '<img src="/images/pjdict/star.png" width="20" height="20">';
}
echo '</td>';
echo '</tr>';
}

最佳答案

您的代码中有几个错误。对于初学者来说,您的查询将始终返回一个元素,而我认为您想要查询的所有结果。您应该使用 get 函数来 get查询中的所有行。

使用empty在 eloquent 集合上永远不会返回 false,因为您将始终收到 eloquent 对象或集合。要检查您的集合是否有任何值,您可以使用 isEmpty功能。

结果应该是这样的:

<?php

public function getSearch($title) {
$words = Word::where('title', $title)->get();
if ($words->isEmpty()) {
abort(404);
}

return view('dict.index', compact('words'));
}

对于 View :

因为您使用的是 eloquent,所以不必使用数组键来选择值,您应该使用对象属性。就像这样:

<?php

foreach ($words as $row) {
echo '<tr>';
echo '<td>' . $row->title . '</td>';
echo '<td>' . $row->meaning . '</td>';
echo '<td>';
for ($i = 0; $i < $row->rate; $i++) {
echo '<img src="/images/pjdict/star.png" width="20" height="20">';
}
echo '</td>';
echo '</tr>';
}

关于PHP Laravel 返回查看 null 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36864504/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com