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