Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么这个方法没有输出?_Php_Laravel - Fatal编程技术网

Php 为什么这个方法没有输出?

Php 为什么这个方法没有输出?,php,laravel,Php,Laravel,这个方法确实给了我一个空的“$word”。至少它不是一根绳子。 在单词表中,我有一个条目,方法“getUsedWords()”只是检查我以前是否使用过这个单词。 我只想从表中随机抽取一个单词,这是以前没有用过的。 如果要在视图中读取此输出,则会出现错误:“htmlspecialchars()期望参数1为字符串” 我将该值保存在类“GameData”中 此方法如下所示: $this->gamedata->setWord($this->getWord()); 在我看来,我

这个方法确实给了我一个空的“$word”。至少它不是一根绳子。 在单词表中,我有一个条目,方法“getUsedWords()”只是检查我以前是否使用过这个单词。 我只想从表中随机抽取一个单词,这是以前没有用过的。 如果要在视图中读取此输出,则会出现错误:“htmlspecialchars()期望参数1为字符串”

我将该值保存在类“GameData”中

此方法如下所示:

    $this->gamedata->setWord($this->getWord());
在我看来,我使用:

public function setWord($word)
{
    $this->word = $word;
}

在页面上写入单词。

不要在select中写入select语句。对文档进行一次小规模的访问会向您显示:

{{$gamedata->getWord()}}

不要在select中写入select语句。对文档进行一次小规模的访问会向您显示:

{{$gamedata->getWord()}}

我甚至不打算解释您的代码在许多方面都是次优的,我建议您将其重写为:

$words = DB::table('words')->select('name')->get();

换句话说,从表
words
中以随机顺序获取第一个元素,如果使用的单词不为空,则排除这些单词

我甚至不打算解释您的代码在许多方面都是次优的,我建议您将其重写为:

$words = DB::table('words')->select('name')->get();

换句话说,从表
words
中以随机顺序获取第一个元素,如果使用的单词不为空,则排除这些单词

我不会为了返回一个以前从未使用过的单词而使用该函数,因为每次调用该函数时,都会返回所有单词,然后对它们进行解析,每次都会调用数据库查询


我会有一个包含单词列表的表格,然后在每个单词旁边有一个使用计数。既然你不在乎你用什么词,只要你以前没用过,我就构造一个SELECT语句,它会选择第一个结果,按使用次数递增排序。这样,一旦你使用了所有的单词一次,它就会发生,然后循环并重新开始。

我不会为了返回一个以前没有使用过的单词而使用该函数,因为每次调用该函数时,你都会返回所有的单词,然后通过它们进行解析,每次调用数据库查询


我会有一个包含单词列表的表格,然后在每个单词旁边有一个使用计数。既然你不在乎你用什么词,只要你以前没用过,我就构造一个SELECT语句,它会选择第一个结果,按使用次数递增排序。这样,一旦你将所有单词都用过一次,它就会发生,然后循环并重新开始。

你只需在单词和已用单词之间做一个
左连接
,就可以从前者中得到一行,后者中没有。
选择“name”
可能不会像您认为的那样做?调用
htmlspecialchars
的代码在哪里?应该
返回getWord()
不是
返回$this->getWord()?我的数据库中有“id”、“名称”和“类别”。我想它会返回“name”列。你可以在单词和常用单词之间进行一次
左连接,从前者得到一行,而前者不在后者中。
选择“name”
可能不会像你认为的那样做?调用
htmlspecialchars
的代码在哪里?应该
返回getWord()
notbe
return$this->getWord()?我的数据库中有“id”、“名称”和“类别”。我认为它将返回列“name”
DB::select()
is direct语句,并且在运行原始查询时是一个非常有效的用例。它将以对象数组的形式返回read语句的结果,其中每个对象都是结果行的表示形式。我更改了该语句,但仍然得到相同的错误:htmlspecialchars()希望参数1为stringYes@sraLton,这是因为该语句返回对象。在打印对象之前,您需要从对象中获取名称,因为Laravel Blade会自动转义输出。因此,您可以使用类似于
$word->name
DB::select()
的语句,这是运行原始查询时非常有效的用例。它将以对象数组的形式返回read语句的结果,其中每个对象都是结果行的表示形式。我更改了该语句,但仍然得到相同的错误:htmlspecialchars()希望参数1为stringYes@sraLton,这是因为该语句返回对象。在打印对象之前,您需要从对象中获取名称,因为Laravel Blade会自动转义输出。因此,您可以使用类似于
$word->name